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

Commit 3b2c4d54 authored by Alex Sakhartchouk's avatar Alex Sakhartchouk Committed by android-build-merger
Browse files

Merge "Re-enable default display when switching to VR mode." into oc-dr1-dev

am: efa87ca4

Change-Id: I149f9ea222d058b6b42405dabd2d27f44706a853
parents 9c266135 efa87ca4
Loading
Loading
Loading
Loading
+15 −5
Original line number Diff line number Diff line
@@ -1323,11 +1323,21 @@ void SurfaceFlinger::updateVrFlinger() {
    // parts of this class rely on the primary display always being available.
    createDefaultDisplayDevice();

    // Re-enable default display.
    sp<LambdaMessage> requestMessage = new LambdaMessage([&]() {
        sp<DisplayDevice> hw(getDisplayDevice(mBuiltinDisplays[DisplayDevice::DISPLAY_PRIMARY]));
        setPowerModeInternal(hw, HWC_POWER_MODE_NORMAL);

        // Reset the timing values to account for the period of the swapped in HWC
        const auto& activeConfig = mHwc->getActiveConfig(HWC_DISPLAY_PRIMARY);
        const nsecs_t period = activeConfig->getVsyncPeriod();
        mAnimFrameTracker.setDisplayRefreshPeriod(period);

        // Use phase of 0 since phase is not known.
        // Use latency of 0, which will snap to the ideal latency.
        setCompositorTimingSnapped(0, period, 0);
    });
    postMessageAsync(requestMessage);

    android_atomic_or(1, &mRepaintEverything);
    setTransactionFlags(eDisplayTransactionNeeded);