[VRR] vrr_bugfix_24q4 flag to gate toolkit VRR idle handling
vrr_bugfix_24q4 flag to gate toolkit VRR idle handling
Fixes: 342281415
Test: atest ViewFrameRateTest
Change-Id: If1ad3a60c90f74882d3445a99b89736d0d80847c
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java
index 0466fdd..4acd5d5 100644
--- a/core/java/android/view/ViewRootImpl.java
+++ b/core/java/android/view/ViewRootImpl.java
@@ -1192,6 +1192,8 @@
toolkitFrameRateVelocityMappingReadOnly();
private static boolean sToolkitEnableInvalidateCheckThreadFlagValue =
Flags.enableInvalidateCheckThread();
+ private static boolean sSurfaceFlingerBugfixFlagValue =
+ com.android.graphics.surfaceflinger.flags.Flags.vrrBugfix24q4();
static {
sToolkitSetFrameRateReadOnlyFlagValue = toolkitSetFrameRateReadOnly();
@@ -4269,7 +4271,7 @@
// when the values are applicable.
if (mDrawnThisFrame) {
mDrawnThisFrame = false;
- if (!mInvalidationIdleMessagePosted) {
+ if (!mInvalidationIdleMessagePosted && sSurfaceFlingerBugfixFlagValue) {
mInvalidationIdleMessagePosted = true;
mHandler.sendEmptyMessageDelayed(MSG_CHECK_INVALIDATION_IDLE, IDLE_TIME_MILLIS);
}
@@ -13017,7 +13019,7 @@
private void removeVrrMessages() {
mHandler.removeMessages(MSG_TOUCH_BOOST_TIMEOUT);
mHandler.removeMessages(MSG_FRAME_RATE_SETTING);
- if (mInvalidationIdleMessagePosted) {
+ if (mInvalidationIdleMessagePosted && sSurfaceFlingerBugfixFlagValue) {
mInvalidationIdleMessagePosted = false;
mHandler.removeMessages(MSG_CHECK_INVALIDATION_IDLE);
}
diff --git a/core/tests/coretests/src/android/view/ViewFrameRateTest.java b/core/tests/coretests/src/android/view/ViewFrameRateTest.java
index 3755849..6757703 100644
--- a/core/tests/coretests/src/android/view/ViewFrameRateTest.java
+++ b/core/tests/coretests/src/android/view/ViewFrameRateTest.java
@@ -625,7 +625,8 @@
@Test
@RequiresFlagsEnabled({FLAG_TOOLKIT_SET_FRAME_RATE_READ_ONLY,
- FLAG_TOOLKIT_FRAME_RATE_VIEW_ENABLING_READ_ONLY
+ FLAG_TOOLKIT_FRAME_RATE_VIEW_ENABLING_READ_ONLY,
+ com.android.graphics.surfaceflinger.flags.Flags.FLAG_VRR_BUGFIX_24Q4
})
public void idleDetected() throws Throwable {
waitForFrameRateCategoryToSettle();