Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b5a36371 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Remove enable_on_mode_changed_vsync_phase_offset feature flag" into main

parents 73ece28f 2f013cb7
Loading
Loading
Loading
Loading
+6 −15
Original line number Diff line number Diff line
@@ -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();
@@ -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();
+0 −10
Original line number Diff line number Diff line
@@ -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
@@ -497,10 +492,6 @@ public class DisplayManagerFlags {
        return mHdrBrightnessSetting.isEnabled();
    }

    public boolean isDispatchDisplayModeWithVsyncOffsetsEnabled() {
        return mDispatchDisplayModeWithVsyncOffsets.isEnabled();
    }

    public boolean isDefaultDisplayInTopologySwitchEnabled() {
        return mEnableDefaultDisplayInTopologySwitch.isEnabled();
    }
@@ -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);
+0 −10
Original line number Diff line number Diff line
@@ -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"
+0 −47
Original line number Diff line number Diff line
@@ -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;
@@ -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;