summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Ady Abraham <adyabr@google.com> 2019-04-17 20:09:26 -0700
committer Ady Abraham <adyabr@google.com> 2019-04-23 21:21:57 +0000
commite1a5bcb26856d35ce56f999c81e29f94a13c210c (patch)
treeb3e643efb2b880623f53e517d585283538342f72
parent325eb208951f82e8c1973e30fb152f42adb36c4d (diff)
SurfaceFlinger: generate invalidate after setActiveConfig
ag/7074109 removes the refresh from setActiveConfig. We need to make sure invalidate is called after calling setActiveConfig and to check the fence and update out internal state. Test: scroll within calendar app and observe systraces Bug: 123661966 Change-Id: Ib83949a1fe855f3852808da8c4f8b4fb55f05f8c
-rw-r--r--services/surfaceflinger/SurfaceFlinger.cpp8
1 files changed, 2 insertions, 6 deletions
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp
index 724058fc3e..bd286c349a 100644
--- a/services/surfaceflinger/SurfaceFlinger.cpp
+++ b/services/surfaceflinger/SurfaceFlinger.cpp
@@ -980,7 +980,7 @@ bool SurfaceFlinger::performSetActiveConfig() {
if (mPreviousPresentFence != Fence::NO_FENCE &&
(mPreviousPresentFence->getStatus() == Fence::Status::Unsignaled)) {
// fence has not signaled yet. wait for the next invalidate
- repaintEverythingForHWC();
+ mEventQueue->invalidateForHWC();
return true;
}
@@ -1031,7 +1031,7 @@ bool SurfaceFlinger::performSetActiveConfig() {
// we need to submit an empty frame to HWC to start the process
mCheckPendingFence = true;
-
+ mEventQueue->invalidateForHWC();
return false;
}
@@ -1447,10 +1447,6 @@ void SurfaceFlinger::setRefreshRateTo(RefreshRateType refreshRate, Scheduler::Co
return;
}
- if (desiredConfigId == display->getActiveConfig()) {
- return;
- }
-
setDesiredActiveConfig({refreshRate, desiredConfigId, event});
}