diff options
author | Devanshi Bansal <quic_devanshi@quicinc.com> | 2022-04-12 14:09:22 +0530 |
---|---|---|
committer | Devanshi Bansal <quic_devanshi@quicinc.com> | 2022-04-12 09:14:17 +0000 |
commit | 2c69a7e738d0be214423d2d79c994c727e3c12cb (patch) | |
tree | 07ed3a073b24642307e1130483b35bbb63963432 | |
parent | 843be86c432287f499845d6032e5568ff0313924 (diff) |
sf: Reconfigure display for mode change only if resolution changes
CRs-Fixed: 3170218
Change-Id: I9b2db0b5a047c159440ef532211c0cfaa03808da
-rw-r--r-- | services/surfaceflinger/SurfaceFlinger.cpp | 10 |
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); |