Loading services/core/java/com/android/server/display/LocalDisplayAdapter.java +6 −15 Original line number Diff line number Diff line Loading @@ -531,19 +531,13 @@ final class LocalDisplayAdapter extends DisplayAdapter { : mDefaultModeId; } private long getAppVsyncOffsetNanos(long defaultValue) { if (getFeatureFlags().isDispatchDisplayModeWithVsyncOffsetsEnabled()) { private long getAppVsyncOffsetNanos() { return mAppVsyncOffsetNanos; } return defaultValue; } private long getPresentationDeadlineNanos(long defaultValue) { if (getFeatureFlags().isDispatchDisplayModeWithVsyncOffsetsEnabled()) { private long getPresentationDeadlineNanos() { return mPresentationDeadlineNanos; } return defaultValue; } private int getLogicalDensity() { DensityMapping densityMapping = getDisplayDeviceConfig().getDensityMapping(); Loading Loading @@ -753,11 +747,8 @@ final class LocalDisplayAdapter extends DisplayAdapter { mInfo.hasArrSupport = mHasArrSupport; mInfo.frameRateCategoryRate = mFrameRateCategoryRate; mInfo.supportedRefreshRates = mSupportedRefreshRates; mInfo.appVsyncOffsetNanos = getAppVsyncOffsetNanos(mActiveSfDisplayMode.appVsyncOffsetNanos); mInfo.presentationDeadlineNanos = getPresentationDeadlineNanos( mActiveSfDisplayMode.presentationDeadlineNanos); mInfo.appVsyncOffsetNanos = getAppVsyncOffsetNanos(); mInfo.presentationDeadlineNanos = getPresentationDeadlineNanos(); mInfo.state = mState; mInfo.committedState = mCommittedState; mInfo.uniqueId = getUniqueId(); Loading services/core/java/com/android/server/display/feature/DisplayManagerFlags.java +0 −10 Original line number Diff line number Diff line Loading @@ -227,11 +227,6 @@ public class DisplayManagerFlags { Flags::hdrBrightnessSetting ); private final FlagState mDispatchDisplayModeWithVsyncOffsets = new FlagState( Flags.FLAG_ENABLE_ON_MODE_CHANGED_VSYNC_PHASE_OFFSET, Flags::enableOnModeChangedVsyncPhaseOffset ); private final FlagState mEnableDefaultDisplayInTopologySwitch = new FlagState( Flags.FLAG_ENABLE_DEFAULT_DISPLAY_IN_TOPOLOGY_SWITCH, DesktopExperienceFlags.ENABLE_DEFAULT_DISPLAY_IN_TOPOLOGY_SWITCH::isTrue Loading Loading @@ -497,10 +492,6 @@ public class DisplayManagerFlags { return mHdrBrightnessSetting.isEnabled(); } public boolean isDispatchDisplayModeWithVsyncOffsetsEnabled() { return mDispatchDisplayModeWithVsyncOffsets.isEnabled(); } public boolean isDefaultDisplayInTopologySwitchEnabled() { return mEnableDefaultDisplayInTopologySwitch.isEnabled(); } Loading Loading @@ -589,7 +580,6 @@ public class DisplayManagerFlags { pw.println(" " + mSetBrightnessByUnit); pw.println(" " + mDelayImplicitRrRegistrationUntilRrAccessed); pw.println(" " + mHdrBrightnessSetting); pw.println(" " + mDispatchDisplayModeWithVsyncOffsets); pw.println(" " + mEnableDefaultDisplayInTopologySwitch); pw.println(" " + mModeSwitchWithoutSaving); pw.println(" " + mEnsureColorFadeWhenTurningOn); Loading services/core/java/com/android/server/display/feature/display_flags.aconfig +0 −10 Original line number Diff line number Diff line Loading @@ -375,16 +375,6 @@ flag { is_fixed_read_only: true } flag { name: "enable_on_mode_changed_vsync_phase_offset" namespace: "core_graphics" description: "Flag to utilize vsync offset and presentation deadline from onModeChanged callback" bug: "398872242" metadata { purpose: PURPOSE_BUGFIX } } flag { name: "enable_default_display_in_topology_switch" namespace: "lse_desktop_experience" Loading services/tests/displayservicetests/src/com/android/server/display/LocalDisplayAdapterTest.java +0 −47 Original line number Diff line number Diff line Loading @@ -857,54 +857,8 @@ public class LocalDisplayAdapterTest { Float.floatToIntBits(displayDeviceInfo.renderFrameRate)); } @Test public void testAfterOnModeChanged_presentationOffsetsAreNotUpdatedWithFlagOff() throws Exception { doReturn(false).when(mFlags).isDispatchDisplayModeWithVsyncOffsetsEnabled(); long appVsyncOffsetNanosMode1 = 100; long presentationDeadlineNanosMode1 = 200; long appVsyncOffsetNanosMode2 = 101; long presentationDeadlineNanosMode2 = 201; SurfaceControl.DisplayMode displayMode1 = createFakeDisplayMode(0, 1920, 1080, 60f, appVsyncOffsetNanosMode1, presentationDeadlineNanosMode1); SurfaceControl.DisplayMode displayMode2 = createFakeDisplayMode(1, 1920, 1080, 120f, appVsyncOffsetNanosMode2, presentationDeadlineNanosMode2); SurfaceControl.DisplayMode[] modes = new SurfaceControl.DisplayMode[]{displayMode1, displayMode2}; FakeDisplay display = new FakeDisplay(PORT_A, modes, 0, displayMode1.peakRefreshRate); setUpDisplay(display); updateAvailableDisplays(); mAdapter.registerLocked(); waitForHandlerToComplete(mHandler, HANDLER_WAIT_MS); assertThat(mListener.addedDisplays.size()).isEqualTo(1); assertThat(mListener.changedDisplays).isEmpty(); DisplayDeviceInfo displayDeviceInfo = mListener.addedDisplays.get( 0).getDisplayDeviceInfoLocked(); assertEquals(appVsyncOffsetNanosMode1, displayDeviceInfo.appVsyncOffsetNanos); assertEquals(presentationDeadlineNanosMode1, displayDeviceInfo.presentationDeadlineNanos); long newAppVsyncOffsetNanos = 400; long newPresentationDeadlineNanos = 500; mInjector.getTransmitter().sendOnModeChanged(display, 1, (long) displayMode2.peakRefreshRate, newAppVsyncOffsetNanos, newPresentationDeadlineNanos); waitForHandlerToComplete(mHandler, HANDLER_WAIT_MS); assertTrue(mListener.traversalRequested); DisplayDevice displayDevice = mListener.changedDisplays.get(0); displayDevice.applyPendingDisplayDeviceInfoChangesLocked(); displayDeviceInfo = mListener.addedDisplays.get(0).getDisplayDeviceInfoLocked(); // Returns the values captured through mode. assertEquals(appVsyncOffsetNanosMode2, displayDeviceInfo.appVsyncOffsetNanos); assertEquals(presentationDeadlineNanosMode2, displayDeviceInfo.presentationDeadlineNanos); assertThat(mListener.changedDisplays.size()).isEqualTo(1); } @Test public void testAfterOnModeChanged_presentationOffsetsAreUpdatedWithFlagOn() throws Exception { doReturn(true).when(mFlags).isDispatchDisplayModeWithVsyncOffsetsEnabled(); long appVsyncOffsetNanosMode1 = 100; long presentationDeadlineNanosMode1 = 200; long appVsyncOffsetNanosMode2 = 101; Loading Loading @@ -949,7 +903,6 @@ public class LocalDisplayAdapterTest { @Test @EnableFlags(com.android.graphics.surfaceflinger.flags.Flags.FLAG_SUPPORTED_REFRESH_RATE_UPDATE) public void testOnModeAndFrameRateOverridesChanged() throws Exception { doReturn(true).when(mFlags).isDispatchDisplayModeWithVsyncOffsetsEnabled(); doReturn(true).when(mFlags).isSingleAppEventForModeAndFrameRateOverrideEnabled(); long appVsyncOffsetNanosMode1 = 100; long presentationDeadlineNanosMode1 = 200; Loading Loading
services/core/java/com/android/server/display/LocalDisplayAdapter.java +6 −15 Original line number Diff line number Diff line Loading @@ -531,19 +531,13 @@ final class LocalDisplayAdapter extends DisplayAdapter { : mDefaultModeId; } private long getAppVsyncOffsetNanos(long defaultValue) { if (getFeatureFlags().isDispatchDisplayModeWithVsyncOffsetsEnabled()) { private long getAppVsyncOffsetNanos() { return mAppVsyncOffsetNanos; } return defaultValue; } private long getPresentationDeadlineNanos(long defaultValue) { if (getFeatureFlags().isDispatchDisplayModeWithVsyncOffsetsEnabled()) { private long getPresentationDeadlineNanos() { return mPresentationDeadlineNanos; } return defaultValue; } private int getLogicalDensity() { DensityMapping densityMapping = getDisplayDeviceConfig().getDensityMapping(); Loading Loading @@ -753,11 +747,8 @@ final class LocalDisplayAdapter extends DisplayAdapter { mInfo.hasArrSupport = mHasArrSupport; mInfo.frameRateCategoryRate = mFrameRateCategoryRate; mInfo.supportedRefreshRates = mSupportedRefreshRates; mInfo.appVsyncOffsetNanos = getAppVsyncOffsetNanos(mActiveSfDisplayMode.appVsyncOffsetNanos); mInfo.presentationDeadlineNanos = getPresentationDeadlineNanos( mActiveSfDisplayMode.presentationDeadlineNanos); mInfo.appVsyncOffsetNanos = getAppVsyncOffsetNanos(); mInfo.presentationDeadlineNanos = getPresentationDeadlineNanos(); mInfo.state = mState; mInfo.committedState = mCommittedState; mInfo.uniqueId = getUniqueId(); Loading
services/core/java/com/android/server/display/feature/DisplayManagerFlags.java +0 −10 Original line number Diff line number Diff line Loading @@ -227,11 +227,6 @@ public class DisplayManagerFlags { Flags::hdrBrightnessSetting ); private final FlagState mDispatchDisplayModeWithVsyncOffsets = new FlagState( Flags.FLAG_ENABLE_ON_MODE_CHANGED_VSYNC_PHASE_OFFSET, Flags::enableOnModeChangedVsyncPhaseOffset ); private final FlagState mEnableDefaultDisplayInTopologySwitch = new FlagState( Flags.FLAG_ENABLE_DEFAULT_DISPLAY_IN_TOPOLOGY_SWITCH, DesktopExperienceFlags.ENABLE_DEFAULT_DISPLAY_IN_TOPOLOGY_SWITCH::isTrue Loading Loading @@ -497,10 +492,6 @@ public class DisplayManagerFlags { return mHdrBrightnessSetting.isEnabled(); } public boolean isDispatchDisplayModeWithVsyncOffsetsEnabled() { return mDispatchDisplayModeWithVsyncOffsets.isEnabled(); } public boolean isDefaultDisplayInTopologySwitchEnabled() { return mEnableDefaultDisplayInTopologySwitch.isEnabled(); } Loading Loading @@ -589,7 +580,6 @@ public class DisplayManagerFlags { pw.println(" " + mSetBrightnessByUnit); pw.println(" " + mDelayImplicitRrRegistrationUntilRrAccessed); pw.println(" " + mHdrBrightnessSetting); pw.println(" " + mDispatchDisplayModeWithVsyncOffsets); pw.println(" " + mEnableDefaultDisplayInTopologySwitch); pw.println(" " + mModeSwitchWithoutSaving); pw.println(" " + mEnsureColorFadeWhenTurningOn); Loading
services/core/java/com/android/server/display/feature/display_flags.aconfig +0 −10 Original line number Diff line number Diff line Loading @@ -375,16 +375,6 @@ flag { is_fixed_read_only: true } flag { name: "enable_on_mode_changed_vsync_phase_offset" namespace: "core_graphics" description: "Flag to utilize vsync offset and presentation deadline from onModeChanged callback" bug: "398872242" metadata { purpose: PURPOSE_BUGFIX } } flag { name: "enable_default_display_in_topology_switch" namespace: "lse_desktop_experience" Loading
services/tests/displayservicetests/src/com/android/server/display/LocalDisplayAdapterTest.java +0 −47 Original line number Diff line number Diff line Loading @@ -857,54 +857,8 @@ public class LocalDisplayAdapterTest { Float.floatToIntBits(displayDeviceInfo.renderFrameRate)); } @Test public void testAfterOnModeChanged_presentationOffsetsAreNotUpdatedWithFlagOff() throws Exception { doReturn(false).when(mFlags).isDispatchDisplayModeWithVsyncOffsetsEnabled(); long appVsyncOffsetNanosMode1 = 100; long presentationDeadlineNanosMode1 = 200; long appVsyncOffsetNanosMode2 = 101; long presentationDeadlineNanosMode2 = 201; SurfaceControl.DisplayMode displayMode1 = createFakeDisplayMode(0, 1920, 1080, 60f, appVsyncOffsetNanosMode1, presentationDeadlineNanosMode1); SurfaceControl.DisplayMode displayMode2 = createFakeDisplayMode(1, 1920, 1080, 120f, appVsyncOffsetNanosMode2, presentationDeadlineNanosMode2); SurfaceControl.DisplayMode[] modes = new SurfaceControl.DisplayMode[]{displayMode1, displayMode2}; FakeDisplay display = new FakeDisplay(PORT_A, modes, 0, displayMode1.peakRefreshRate); setUpDisplay(display); updateAvailableDisplays(); mAdapter.registerLocked(); waitForHandlerToComplete(mHandler, HANDLER_WAIT_MS); assertThat(mListener.addedDisplays.size()).isEqualTo(1); assertThat(mListener.changedDisplays).isEmpty(); DisplayDeviceInfo displayDeviceInfo = mListener.addedDisplays.get( 0).getDisplayDeviceInfoLocked(); assertEquals(appVsyncOffsetNanosMode1, displayDeviceInfo.appVsyncOffsetNanos); assertEquals(presentationDeadlineNanosMode1, displayDeviceInfo.presentationDeadlineNanos); long newAppVsyncOffsetNanos = 400; long newPresentationDeadlineNanos = 500; mInjector.getTransmitter().sendOnModeChanged(display, 1, (long) displayMode2.peakRefreshRate, newAppVsyncOffsetNanos, newPresentationDeadlineNanos); waitForHandlerToComplete(mHandler, HANDLER_WAIT_MS); assertTrue(mListener.traversalRequested); DisplayDevice displayDevice = mListener.changedDisplays.get(0); displayDevice.applyPendingDisplayDeviceInfoChangesLocked(); displayDeviceInfo = mListener.addedDisplays.get(0).getDisplayDeviceInfoLocked(); // Returns the values captured through mode. assertEquals(appVsyncOffsetNanosMode2, displayDeviceInfo.appVsyncOffsetNanos); assertEquals(presentationDeadlineNanosMode2, displayDeviceInfo.presentationDeadlineNanos); assertThat(mListener.changedDisplays.size()).isEqualTo(1); } @Test public void testAfterOnModeChanged_presentationOffsetsAreUpdatedWithFlagOn() throws Exception { doReturn(true).when(mFlags).isDispatchDisplayModeWithVsyncOffsetsEnabled(); long appVsyncOffsetNanosMode1 = 100; long presentationDeadlineNanosMode1 = 200; long appVsyncOffsetNanosMode2 = 101; Loading Loading @@ -949,7 +903,6 @@ public class LocalDisplayAdapterTest { @Test @EnableFlags(com.android.graphics.surfaceflinger.flags.Flags.FLAG_SUPPORTED_REFRESH_RATE_UPDATE) public void testOnModeAndFrameRateOverridesChanged() throws Exception { doReturn(true).when(mFlags).isDispatchDisplayModeWithVsyncOffsetsEnabled(); doReturn(true).when(mFlags).isSingleAppEventForModeAndFrameRateOverrideEnabled(); long appVsyncOffsetNanosMode1 = 100; long presentationDeadlineNanosMode1 = 200; Loading