From 6398a0a12d478a46446029ef25785bced671b443 Mon Sep 17 00:00:00 2001 From: Ady Abraham Date: Thu, 18 Apr 2019 19:30:44 -0700 Subject: SurfaceFlinger: call to changeRefreshRate on state change only Check if Scheduler's idle timer / content detection changed before calling to changeRefreshRate to avoid sending config changed events when those are not neeed. Test: scroll within calendar app and observe systraces Bug: 130759239 Change-Id: If7bce0ac096630918decbf62c568baa5e17408f2 --- services/surfaceflinger/SurfaceFlinger.cpp | 3 +++ 1 file changed, 3 insertions(+) (limited to 'services/surfaceflinger/SurfaceFlinger.cpp') diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp index 3744f8b0b8..a51f020576 100644 --- a/services/surfaceflinger/SurfaceFlinger.cpp +++ b/services/surfaceflinger/SurfaceFlinger.cpp @@ -1005,6 +1005,7 @@ bool SurfaceFlinger::performSetActiveConfig() { // display is not valid or we are already in the requested mode // on both cases there is nothing left to do std::lock_guard lock(mActiveConfigLock); + mDesiredActiveConfig.event = Scheduler::ConfigEvent::None; mDesiredActiveConfigChanged = false; ATRACE_INT("DesiredActiveConfigChanged", mDesiredActiveConfigChanged); return false; @@ -1017,6 +1018,8 @@ bool SurfaceFlinger::performSetActiveConfig() { std::lock_guard lock(mActiveConfigLock); mDesiredActiveConfig.event = Scheduler::ConfigEvent::None; mDesiredActiveConfig.configId = display->getActiveConfig(); + mDesiredActiveConfigChanged = false; + ATRACE_INT("DesiredActiveConfigChanged", mDesiredActiveConfigChanged); return false; } mUpcomingActiveConfig = desiredActiveConfig; -- cgit v1.2.3-59-g8ed1b