surfaceflinger: repaint on DOZE_SUSPEND exit
This will force SF push out one more frame when transitioning out of
DOZE_SUSPEND. This will allow display to update with the latest frame
generated by the AP if MCU has drawn something on screen.
Bug: 191264924
Bug: 189731001
Change-Id: I491134973c00e98bf1c9f5af2ec37d4e0e5e547b
(cherry picked from commit 45ebe726419d344d5cf4abc83d71f1847b60e86a)
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp
index aba7998..c4d6b0c 100644
--- a/services/surfaceflinger/SurfaceFlinger.cpp
+++ b/services/surfaceflinger/SurfaceFlinger.cpp
@@ -4920,6 +4920,9 @@
// Update display while dozing
getHwComposer().setPowerMode(displayId, mode);
if (isDisplayActiveLocked(display) && currentMode == hal::PowerMode::DOZE_SUSPEND) {
+ ALOGI("Force repainting for DOZE_SUSPEND -> DOZE or ON.");
+ mVisibleRegionsDirty = true;
+ scheduleRepaint();
mScheduler->onScreenAcquired(mAppConnectionHandle);
mScheduler->resyncToHardwareVsync(true, refreshRate);
}