summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDevanshi Bansal <quic_devanshi@quicinc.com>2022-04-12 14:09:22 +0530
committerDevanshi Bansal <quic_devanshi@quicinc.com>2022-04-12 09:14:17 +0000
commit2c69a7e738d0be214423d2d79c994c727e3c12cb (patch)
tree07ed3a073b24642307e1130483b35bbb63963432
parent843be86c432287f499845d6032e5568ff0313924 (diff)
sf: Reconfigure display for mode change only if resolution changes
CRs-Fixed: 3170218 Change-Id: I9b2db0b5a047c159440ef532211c0cfaa03808da
-rw-r--r--services/surfaceflinger/SurfaceFlinger.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp
index 04b49325d2..abb8bafcdf 100644
--- a/services/surfaceflinger/SurfaceFlinger.cpp
+++ b/services/surfaceflinger/SurfaceFlinger.cpp
@@ -8305,8 +8305,16 @@ status_t SurfaceFlinger::setDesiredDisplayModeSpecsInternal(
// TODO(b/140204874): Leave the event in until we do proper testing with all apps that might
// be depending in this callback.
const auto activeMode = display->getActiveMode();
+ auto activeModeWidth = activeMode->getWidth();
+ auto activeModeHeight = activeMode->getHeight();
+ auto defaultModeWidth = (display->getMode(currentPolicy.defaultMode))->getWidth();
+ auto defaultModeHeight = (display->getMode(currentPolicy.defaultMode))->getHeight();
if (isDisplayActiveLocked(display)) {
- mScheduler->onPrimaryDisplayModeChanged(mAppConnectionHandle, display->getMode(currentPolicy.defaultMode));
+ if ((activeModeWidth == defaultModeWidth) && (activeModeHeight == defaultModeHeight)) {
+ mScheduler->onPrimaryDisplayModeChanged(mAppConnectionHandle, activeMode);
+ } else {
+ mScheduler->onPrimaryDisplayModeChanged(mAppConnectionHandle, display->getMode(currentPolicy.defaultMode));
+ }
toggleKernelIdleTimer();
} else {
mScheduler->onNonPrimaryDisplayModeChanged(mAppConnectionHandle, activeMode);