Always set phase offsets in setRefreshRateTo.
Incremental syncs can cause SF's configuration to be out of sync with
HWC, which allows for bad phase offsets.
Test: dumpsys
Change-Id: Ide92a15853ce50cbff8b03e474956b96fb1e5c8b
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp
index 0345baf..bc6dc67 100644
--- a/services/surfaceflinger/SurfaceFlinger.cpp
+++ b/services/surfaceflinger/SurfaceFlinger.cpp
@@ -1485,12 +1485,13 @@
return;
}
+ mPhaseOffsets->setRefreshRateType(refreshRate);
+
const auto display = getDisplayDeviceLocked(displayToken);
if (desiredConfigId == display->getActiveConfig()) {
return;
}
- mPhaseOffsets->setRefreshRateType(refreshRate);
setDesiredActiveConfig({refreshRate, desiredConfigId, getInternalDisplayTokenLocked(), event});
}