summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Riddle Hsu <riddlehsu@google.com> 2024-11-04 15:03:04 +0800
committer Riddle Hsu <riddlehsu@google.com> 2024-11-04 15:03:31 +0800
commite820781d5b95696446d6eeaf88b1185d2cba11a9 (patch)
tree48879176fbfda82d07a83ee60766f59895d06e74
parent38c9e553a2bee27e7417dfa963f9b8c3f0a382d3 (diff)
Remove enabled flag explicit_refresh_rate_hints
It has been enabled for a year. Bug: 300019131 Test: TransitionTests#testTransitionsTriggerPerformanceHints Flag: EXEMPT removing com.android.window.flags.explicit_refresh_rate_hints Change-Id: I26b717c8ac6c53faef5d1a51b65ea490643a2146
-rw-r--r--core/java/android/window/flags/window_surfaces.aconfig8
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellBaseModule.java3
-rw-r--r--services/core/java/com/android/server/wm/DisplayContent.java13
-rw-r--r--services/core/java/com/android/server/wm/RefreshRatePolicy.java42
-rw-r--r--services/core/java/com/android/server/wm/WindowState.java10
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/FrameRateSelectionPriorityTests.java45
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/RefreshRatePolicyTest.java95
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/TransitionTests.java26
8 files changed, 27 insertions, 215 deletions
diff --git a/core/java/android/window/flags/window_surfaces.aconfig b/core/java/android/window/flags/window_surfaces.aconfig
index 460df3103488..392c307de7ba 100644
--- a/core/java/android/window/flags/window_surfaces.aconfig
+++ b/core/java/android/window/flags/window_surfaces.aconfig
@@ -13,14 +13,6 @@ flag {
flag {
namespace: "window_surfaces"
- name: "explicit_refresh_rate_hints"
- description: "Performance related hints during transitions"
- is_fixed_read_only: true
- bug: "300019131"
-}
-
-flag {
- namespace: "window_surfaces"
name: "delete_capture_display"
description: "Delete uses of ScreenCapture#captureDisplay"
is_fixed_read_only: true
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellBaseModule.java b/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellBaseModule.java
index 2a5a519272c7..77e041ee7cdb 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellBaseModule.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellBaseModule.java
@@ -401,9 +401,6 @@ public abstract class WMShellBaseModule {
ShellInit shellInit,
ShellCommandHandler shellCommandHandler,
RootTaskDisplayAreaOrganizer rootTdaOrganizer) {
- if (!com.android.window.flags.Flags.explicitRefreshRateHints()) {
- return Optional.empty();
- }
final PerfHintController perfHintController =
new PerfHintController(context, shellInit, shellCommandHandler, rootTdaOrganizer);
return Optional.of(perfHintController.getHinter());
diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java
index d6ded51f538b..a066e4d52c77 100644
--- a/services/core/java/com/android/server/wm/DisplayContent.java
+++ b/services/core/java/com/android/server/wm/DisplayContent.java
@@ -159,7 +159,6 @@ import static com.android.server.wm.utils.DisplayInfoOverrides.WM_OVERRIDE_FIELD
import static com.android.server.wm.utils.DisplayInfoOverrides.copyDisplayInfoFields;
import static com.android.server.wm.utils.RegionUtils.forEachRectReverse;
import static com.android.server.wm.utils.RegionUtils.rectListToRegion;
-import static com.android.window.flags.Flags.explicitRefreshRateHints;
import android.annotation.IntDef;
import android.annotation.NonNull;
@@ -3426,14 +3425,6 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
if (!mWmService.mSupportsHighPerfTransitions) {
return;
}
- if (!explicitRefreshRateHints()) {
- if (enable) {
- getPendingTransaction().setEarlyWakeupStart();
- } else {
- getPendingTransaction().setEarlyWakeupEnd();
- }
- return;
- }
if (enable) {
if (mTransitionPrefSession == null) {
mTransitionPrefSession = mWmService.mSystemPerformanceHinter.createSession(
@@ -3446,10 +3437,6 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
}
void enableHighFrameRate(boolean enable) {
- if (!explicitRefreshRateHints()) {
- // Done by RefreshRatePolicy.
- return;
- }
if (enable) {
if (mHighFrameRateSession == null) {
mHighFrameRateSession = mWmService.mSystemPerformanceHinter.createSession(
diff --git a/services/core/java/com/android/server/wm/RefreshRatePolicy.java b/services/core/java/com/android/server/wm/RefreshRatePolicy.java
index 8cab7d979d07..e4c34ed52359 100644
--- a/services/core/java/com/android/server/wm/RefreshRatePolicy.java
+++ b/services/core/java/com/android/server/wm/RefreshRatePolicy.java
@@ -19,8 +19,6 @@ package com.android.server.wm;
import static android.hardware.display.DisplayManager.SWITCHING_TYPE_NONE;
import static android.hardware.display.DisplayManager.SWITCHING_TYPE_RENDER_FRAME_RATE_ONLY;
-import static com.android.window.flags.Flags.explicitRefreshRateHints;
-
import android.hardware.display.DisplayManager;
import android.view.Display;
import android.view.Display.Mode;
@@ -60,7 +58,6 @@ class RefreshRatePolicy {
}
private final DisplayInfo mDisplayInfo;
- private final Mode mDefaultMode;
private final Mode mLowRefreshRateMode;
private final PackageRefreshRate mNonHighRefreshRatePackages = new PackageRefreshRate();
private final HighRefreshRateDenylist mHighRefreshRateDenylist;
@@ -92,8 +89,7 @@ class RefreshRatePolicy {
RefreshRatePolicy(WindowManagerService wmService, DisplayInfo displayInfo,
HighRefreshRateDenylist denylist) {
mDisplayInfo = displayInfo;
- mDefaultMode = displayInfo.getDefaultMode();
- mLowRefreshRateMode = findLowRefreshRateMode(displayInfo, mDefaultMode);
+ mLowRefreshRateMode = findLowRefreshRateMode(displayInfo);
mHighRefreshRateDenylist = denylist;
mWmService = wmService;
}
@@ -102,7 +98,8 @@ class RefreshRatePolicy {
* Finds the mode id with the lowest refresh rate which is >= 60hz and same resolution as the
* default mode.
*/
- private Mode findLowRefreshRateMode(DisplayInfo displayInfo, Mode defaultMode) {
+ private Mode findLowRefreshRateMode(DisplayInfo displayInfo) {
+ final Mode defaultMode = displayInfo.getDefaultMode();
float[] refreshRates = displayInfo.getDefaultRefreshRates();
float bestRefreshRate = defaultMode.getRefreshRate();
mMinSupportedRefreshRate = bestRefreshRate;
@@ -135,33 +132,6 @@ class RefreshRatePolicy {
// Unspecified, use default mode.
return 0;
}
-
- // If app is animating, it's not able to control refresh rate because we want the animation
- // to run in default refresh rate. But if the display size of default mode is different
- // from the using preferred mode, then still keep the preferred mode to avoid disturbing
- // the animation.
- if (!explicitRefreshRateHints() && w.isAnimationRunningSelfOrParent()) {
- Display.Mode preferredMode = null;
- for (Display.Mode mode : mDisplayInfo.supportedModes) {
- if (preferredDisplayModeId == mode.getModeId()) {
- preferredMode = mode;
- break;
- }
- }
- if (preferredMode != null) {
- final int pW = preferredMode.getPhysicalWidth();
- final int pH = preferredMode.getPhysicalHeight();
- if ((pW != mDefaultMode.getPhysicalWidth()
- || pH != mDefaultMode.getPhysicalHeight())
- && pW == mDisplayInfo.getNaturalWidth()
- && pH == mDisplayInfo.getNaturalHeight()) {
- // Prefer not to change display size when animating.
- return preferredDisplayModeId;
- }
- }
- return 0;
- }
-
return preferredDisplayModeId;
}
@@ -264,12 +234,6 @@ class RefreshRatePolicy {
return w.mFrameRateVote.reset();
}
- // If app is animating, it's not able to control refresh rate because we want the animation
- // to run in default refresh rate.
- if (!explicitRefreshRateHints() && w.isAnimationRunningSelfOrParent()) {
- return w.mFrameRateVote.reset();
- }
-
// If the app set a preferredDisplayModeId, the preferred refresh rate is the refresh rate
// of that mode id.
if (refreshRateSwitchingType != SWITCHING_TYPE_RENDER_FRAME_RATE_ONLY) {
diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java
index 614187682ef4..86cd0c986792 100644
--- a/services/core/java/com/android/server/wm/WindowState.java
+++ b/services/core/java/com/android/server/wm/WindowState.java
@@ -181,7 +181,6 @@ import static com.android.server.wm.WindowStateProto.UNRESTRICTED_KEEP_CLEAR_ARE
import static com.android.server.wm.WindowStateProto.VIEW_VISIBILITY;
import static com.android.server.wm.WindowStateProto.WINDOW_CONTAINER;
import static com.android.server.wm.WindowStateProto.WINDOW_FRAMES;
-import static com.android.window.flags.Flags.explicitRefreshRateHints;
import static com.android.window.flags.Flags.secureWindowState;
import static com.android.window.flags.Flags.surfaceTrustedOverlay;
@@ -5294,12 +5293,9 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
if (voteChanged) {
getPendingTransaction()
.setFrameRate(mSurfaceControl, mFrameRateVote.mRefreshRate,
- mFrameRateVote.mCompatibility, Surface.CHANGE_FRAME_RATE_ALWAYS);
- if (explicitRefreshRateHints()) {
- getPendingTransaction().setFrameRateSelectionStrategy(mSurfaceControl,
- mFrameRateVote.mSelectionStrategy);
- }
-
+ mFrameRateVote.mCompatibility, Surface.CHANGE_FRAME_RATE_ALWAYS)
+ .setFrameRateSelectionStrategy(mSurfaceControl,
+ mFrameRateVote.mSelectionStrategy);
}
}
diff --git a/services/tests/wmtests/src/com/android/server/wm/FrameRateSelectionPriorityTests.java b/services/tests/wmtests/src/com/android/server/wm/FrameRateSelectionPriorityTests.java
index eacb8e9d628d..a0c5b54603f9 100644
--- a/services/tests/wmtests/src/com/android/server/wm/FrameRateSelectionPriorityTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/FrameRateSelectionPriorityTests.java
@@ -25,7 +25,6 @@ import static com.android.dx.mockito.inline.extended.ExtendedMockito.eq;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.never;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.times;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
-import static com.android.window.flags.Flags.explicitRefreshRateHints;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
@@ -190,14 +189,9 @@ public class FrameRateSelectionPriorityTests extends WindowTestsBase {
verify(appWindow.getPendingTransaction(), times(1)).setFrameRate(
eq(appWindow.getSurfaceControl()), anyFloat(),
eq(Surface.FRAME_RATE_COMPATIBILITY_EXACT), eq(Surface.CHANGE_FRAME_RATE_ALWAYS));
- if (explicitRefreshRateHints()) {
- verify(appWindow.getPendingTransaction(), times(1)).setFrameRateSelectionStrategy(
- appWindow.getSurfaceControl(),
- SurfaceControl.FRAME_RATE_SELECTION_STRATEGY_OVERRIDE_CHILDREN);
- } else {
- verify(appWindow.getPendingTransaction(), never()).setFrameRateSelectionStrategy(
- any(SurfaceControl.class), anyInt());
- }
+ verify(appWindow.getPendingTransaction(), times(1)).setFrameRateSelectionStrategy(
+ appWindow.getSurfaceControl(),
+ SurfaceControl.FRAME_RATE_SELECTION_STRATEGY_OVERRIDE_CHILDREN);
}
@Test
@@ -226,14 +220,9 @@ public class FrameRateSelectionPriorityTests extends WindowTestsBase {
verify(appWindow.getPendingTransaction(), times(1)).setFrameRate(
eq(appWindow.getSurfaceControl()), anyFloat(),
eq(Surface.FRAME_RATE_COMPATIBILITY_EXACT), eq(Surface.CHANGE_FRAME_RATE_ALWAYS));
- if (explicitRefreshRateHints()) {
- verify(appWindow.getPendingTransaction(), times(1)).setFrameRateSelectionStrategy(
- appWindow.getSurfaceControl(),
- SurfaceControl.FRAME_RATE_SELECTION_STRATEGY_OVERRIDE_CHILDREN);
- } else {
- verify(appWindow.getPendingTransaction(), never()).setFrameRateSelectionStrategy(
- any(SurfaceControl.class), anyInt());
- }
+ verify(appWindow.getPendingTransaction(), times(1)).setFrameRateSelectionStrategy(
+ appWindow.getSurfaceControl(),
+ SurfaceControl.FRAME_RATE_SELECTION_STRATEGY_OVERRIDE_CHILDREN);
}
@Test
@@ -288,14 +277,9 @@ public class FrameRateSelectionPriorityTests extends WindowTestsBase {
verify(appWindow.getPendingTransaction(), times(1)).setFrameRate(
appWindow.getSurfaceControl(), 60,
Surface.FRAME_RATE_COMPATIBILITY_EXACT, Surface.CHANGE_FRAME_RATE_ALWAYS);
- if (explicitRefreshRateHints()) {
- verify(appWindow.getPendingTransaction(), times(1)).setFrameRateSelectionStrategy(
- appWindow.getSurfaceControl(),
- SurfaceControl.FRAME_RATE_SELECTION_STRATEGY_OVERRIDE_CHILDREN);
- } else {
- verify(appWindow.getPendingTransaction(), never()).setFrameRateSelectionStrategy(
- any(SurfaceControl.class), anyInt());
- }
+ verify(appWindow.getPendingTransaction(), times(1)).setFrameRateSelectionStrategy(
+ appWindow.getSurfaceControl(),
+ SurfaceControl.FRAME_RATE_SELECTION_STRATEGY_OVERRIDE_CHILDREN);
}
@Test
@@ -352,13 +336,8 @@ public class FrameRateSelectionPriorityTests extends WindowTestsBase {
verify(appWindow.getPendingTransaction(), times(1)).setFrameRate(
appWindow.getSurfaceControl(), 60,
Surface.FRAME_RATE_COMPATIBILITY_DEFAULT, Surface.CHANGE_FRAME_RATE_ALWAYS);
- if (explicitRefreshRateHints()) {
- verify(appWindow.getPendingTransaction(), times(1)).setFrameRateSelectionStrategy(
- appWindow.getSurfaceControl(),
- SurfaceControl.FRAME_RATE_SELECTION_STRATEGY_OVERRIDE_CHILDREN);
- } else {
- verify(appWindow.getPendingTransaction(), never()).setFrameRateSelectionStrategy(
- any(SurfaceControl.class), anyInt());
- }
+ verify(appWindow.getPendingTransaction(), times(1)).setFrameRateSelectionStrategy(
+ appWindow.getSurfaceControl(),
+ SurfaceControl.FRAME_RATE_SELECTION_STRATEGY_OVERRIDE_CHILDREN);
}
}
diff --git a/services/tests/wmtests/src/com/android/server/wm/RefreshRatePolicyTest.java b/services/tests/wmtests/src/com/android/server/wm/RefreshRatePolicyTest.java
index 3fa38bfe7185..3d08ca2905f3 100644
--- a/services/tests/wmtests/src/com/android/server/wm/RefreshRatePolicyTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/RefreshRatePolicyTest.java
@@ -21,14 +21,11 @@ import static android.view.SurfaceControl.RefreshRateRange.FLOAT_TOLERANCE;
import static android.view.WindowManager.LayoutParams.TYPE_BASE_APPLICATION;
import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_APP_TRANSITION;
-import static com.android.window.flags.Flags.explicitRefreshRateHints;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
-import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;
import android.hardware.display.DisplayManager;
@@ -36,7 +33,6 @@ import android.os.Parcel;
import android.platform.test.annotations.Presubmit;
import android.view.Display.Mode;
import android.view.Surface;
-import android.view.WindowManager;
import android.view.WindowManager.LayoutParams;
import androidx.test.filters.SmallTest;
@@ -274,97 +270,6 @@ public class RefreshRatePolicyTest extends WindowTestsBase {
}
@Test
- public void testAnimatingAppOverridePreferredModeId() {
- final WindowState overrideWindow = createWindow("overrideWindow");
- overrideWindow.mAttrs.packageName = "com.android.test";
- overrideWindow.mAttrs.preferredDisplayModeId = LOW_MODE_ID;
- parcelLayoutParams(overrideWindow);
- assertEquals(LOW_MODE_ID, mPolicy.getPreferredModeId(overrideWindow));
- assertTrue(mPolicy.updateFrameRateVote(overrideWindow));
- assertEquals(FRAME_RATE_VOTE_LOW_EXACT, overrideWindow.mFrameRateVote);
- assertEquals(0, mPolicy.getPreferredMinRefreshRate(overrideWindow), FLOAT_TOLERANCE);
- assertEquals(0, mPolicy.getPreferredMaxRefreshRate(overrideWindow), FLOAT_TOLERANCE);
-
- if (explicitRefreshRateHints()) {
- return;
- }
- overrideWindow.mActivityRecord.mSurfaceAnimator.startAnimation(
- overrideWindow.getPendingTransaction(), mock(AnimationAdapter.class),
- false /* hidden */, ANIMATION_TYPE_APP_TRANSITION);
- assertEquals(0, mPolicy.getPreferredModeId(overrideWindow));
- assertTrue(mPolicy.updateFrameRateVote(overrideWindow));
- assertEquals(FRAME_RATE_VOTE_NONE, overrideWindow.mFrameRateVote);
- assertEquals(0, mPolicy.getPreferredMinRefreshRate(overrideWindow), FLOAT_TOLERANCE);
- assertEquals(0, mPolicy.getPreferredMaxRefreshRate(overrideWindow), FLOAT_TOLERANCE);
-
- // Use default mode if it is animating by shell transition.
- overrideWindow.mActivityRecord.mSurfaceAnimator.cancelAnimation();
- registerTestTransitionPlayer();
- final Transition transition = overrideWindow.mTransitionController.createTransition(
- WindowManager.TRANSIT_OPEN);
- transition.collect(overrideWindow.mActivityRecord);
- assertEquals(0, mPolicy.getPreferredModeId(overrideWindow));
-
- // If there will be display size change when switching from preferred mode to default mode,
- // then keep the current preferred mode during animating.
- mDisplayInfo = spy(mDisplayInfo);
- final Mode defaultMode = new Mode(4321 /* width */, 1234 /* height */, LOW_REFRESH_RATE);
- doReturn(defaultMode).when(mDisplayInfo).getDefaultMode();
- mPolicy = new RefreshRatePolicy(mWm, mDisplayInfo, mDenylist);
- assertEquals(LOW_MODE_ID, mPolicy.getPreferredModeId(overrideWindow));
- }
-
- @Test
- public void testAnimatingAppOverridePreferredRefreshRate() {
- final WindowState overrideWindow = createWindow("overrideWindow");
- overrideWindow.mAttrs.packageName = "com.android.test";
- overrideWindow.mAttrs.preferredRefreshRate = LOW_REFRESH_RATE;
- parcelLayoutParams(overrideWindow);
- assertEquals(0, mPolicy.getPreferredModeId(overrideWindow));
- assertTrue(mPolicy.updateFrameRateVote(overrideWindow));
- assertEquals(FRAME_RATE_VOTE_LOW_PREFERRED, overrideWindow.mFrameRateVote);
- assertEquals(0, mPolicy.getPreferredMinRefreshRate(overrideWindow), FLOAT_TOLERANCE);
- assertEquals(0, mPolicy.getPreferredMaxRefreshRate(overrideWindow), FLOAT_TOLERANCE);
-
- if (explicitRefreshRateHints()) {
- return;
- }
- overrideWindow.mActivityRecord.mSurfaceAnimator.startAnimation(
- overrideWindow.getPendingTransaction(), mock(AnimationAdapter.class),
- false /* hidden */, ANIMATION_TYPE_APP_TRANSITION);
- assertEquals(0, mPolicy.getPreferredModeId(overrideWindow));
- assertTrue(mPolicy.updateFrameRateVote(overrideWindow));
- assertEquals(FRAME_RATE_VOTE_NONE, overrideWindow.mFrameRateVote);
- assertEquals(0, mPolicy.getPreferredMinRefreshRate(overrideWindow), FLOAT_TOLERANCE);
- assertEquals(0, mPolicy.getPreferredMaxRefreshRate(overrideWindow), FLOAT_TOLERANCE);
- }
-
- @Test
- public void testAnimatingDenylist() {
- final WindowState window = createWindow("overrideWindow");
- window.mAttrs.packageName = "com.android.test";
- parcelLayoutParams(window);
- when(mDenylist.isDenylisted("com.android.test")).thenReturn(true);
- assertEquals(0, mPolicy.getPreferredModeId(window));
- assertTrue(mPolicy.updateFrameRateVote(window));
- assertEquals(FRAME_RATE_VOTE_DENY_LIST, window.mFrameRateVote);
- assertEquals(0, mPolicy.getPreferredMinRefreshRate(window), FLOAT_TOLERANCE);
- assertEquals(0, mPolicy.getPreferredMaxRefreshRate(window), FLOAT_TOLERANCE);
-
- if (explicitRefreshRateHints()) {
- return;
- }
- window.mActivityRecord.mSurfaceAnimator.startAnimation(
- window.getPendingTransaction(), mock(AnimationAdapter.class),
- false /* hidden */, ANIMATION_TYPE_APP_TRANSITION);
- assertEquals(0, mPolicy.getPreferredModeId(window));
- assertTrue(mPolicy.updateFrameRateVote(window));
- assertEquals(FRAME_RATE_VOTE_NONE, window.mFrameRateVote);
- assertEquals(0, mPolicy.getPreferredMinRefreshRate(window), FLOAT_TOLERANCE);
- assertEquals(0, mPolicy.getPreferredMaxRefreshRate(window), FLOAT_TOLERANCE);
- }
-
- @Test
public void testAnimatingCamera() {
final WindowState cameraUsingWindow = createWindow("cameraUsingWindow");
cameraUsingWindow.mAttrs.packageName = "com.android.test";
diff --git a/services/tests/wmtests/src/com/android/server/wm/TransitionTests.java b/services/tests/wmtests/src/com/android/server/wm/TransitionTests.java
index e8779c2b9ead..21524b7dcbf4 100644
--- a/services/tests/wmtests/src/com/android/server/wm/TransitionTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/TransitionTests.java
@@ -51,7 +51,6 @@ import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.spyOn;
import static com.android.server.wm.WindowContainer.POSITION_TOP;
import static com.android.server.wm.WindowManagerService.UPDATE_FOCUS_NORMAL;
-import static com.android.window.flags.Flags.explicitRefreshRateHints;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
@@ -2883,17 +2882,14 @@ public class TransitionTests extends WindowTestsBase {
@Test
public void testTransitionsTriggerPerformanceHints() {
- final boolean explicitRefreshRateHints = explicitRefreshRateHints();
final var session = new SystemPerformanceHinter.HighPerfSession[1];
- if (explicitRefreshRateHints) {
- final SystemPerformanceHinter perfHinter = mWm.mSystemPerformanceHinter;
- spyOn(perfHinter);
- doAnswer(invocation -> {
- session[0] = (SystemPerformanceHinter.HighPerfSession) invocation.callRealMethod();
- spyOn(session[0]);
- return session[0];
- }).when(perfHinter).createSession(anyInt(), anyInt(), anyString());
- }
+ final SystemPerformanceHinter perfHinter = mWm.mSystemPerformanceHinter;
+ spyOn(perfHinter);
+ doAnswer(invocation -> {
+ session[0] = (SystemPerformanceHinter.HighPerfSession) invocation.callRealMethod();
+ spyOn(session[0]);
+ return session[0];
+ }).when(perfHinter).createSession(anyInt(), anyInt(), anyString());
final TransitionController controller = mDisplayContent.mTransitionController;
final TestTransitionPlayer player = registerTestTransitionPlayer();
final ActivityRecord app = new ActivityBuilder(mAtm).setCreateTask(true).build();
@@ -2905,15 +2901,11 @@ public class TransitionTests extends WindowTestsBase {
player.start();
verify(mDisplayContent).enableHighPerfTransition(true);
- if (explicitRefreshRateHints) {
- verify(session[0]).start();
- }
+ verify(session[0]).start();
player.finish();
verify(mDisplayContent).enableHighPerfTransition(false);
- if (explicitRefreshRateHints) {
- verify(session[0]).close();
- }
+ verify(session[0]).close();
}
@Test