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

Commit 68620d4b authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Create VR HWComposer without locks held"

parents 1925c8fc 209beca0
Loading
Loading
Loading
Loading
+13 −11
Original line number Diff line number Diff line
@@ -176,8 +176,10 @@ SurfaceFlinger::SurfaceFlinger()
        mFrameBuckets(),
        mTotalTime(0),
        mLastSwapTime(0),
        mNumLayers(0),
        mEnterVrMode(false)
        mNumLayers(0)
#ifdef USE_HWC2
        ,mEnterVrMode(false)
#endif
{
    ALOGI("SurfaceFlinger is starting");

@@ -1204,12 +1206,17 @@ void SurfaceFlinger::resetHwc() {
}

void SurfaceFlinger::updateVrMode() {
    {
        Mutex::Autolock _l(mStateLock);
    bool enteringVrMode = mEnterVrMode;
    if (enteringVrMode == mHwc->isUsingVrComposer()) {
        return;
    }
    if (enteringVrMode && !mVrHwc) {
        // Construct new HWComposer without holding any locks.
        mVrHwc = new HWComposer(true);
        ALOGV("Vr HWC created");
    }
    {
        Mutex::Autolock _l(mStateLock);

        if (enteringVrMode) {
            // Start vrflinger thread, if it hasn't been started already.
@@ -1224,11 +1231,6 @@ void SurfaceFlinger::updateVrMode() {
                }
            }

            if (!mVrHwc) {
                mVrHwc = new HWComposer(true);
                ALOGV("Vr HWC created");
            }

            resetHwc();

            mHwc = mVrHwc;