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

Commit 22ee2f4d authored by Season Li's avatar Season Li Committed by Glenn Kasten
Browse files

SF: Call makeCurrent after presenting each display

HWC can change EGLContext in each present. Restore to
default EGLContext after commiting each display.

Test: see https://android-review.googlesource.com/#/c/372703/
Change-Id: I4abc84fb3d4b74964fabcad5a2568ff01a6c5dbb
parent f4140404
Loading
Loading
Loading
Loading
+1 −7
Original line number Original line Diff line number Diff line
@@ -1405,13 +1405,7 @@ void SurfaceFlinger::postFramebuffer()
            mHwc->commit(hwcId);
            mHwc->commit(hwcId);
        }
        }
        displayDevice->onSwapBuffersCompleted();
        displayDevice->onSwapBuffersCompleted();
        if (displayId == 0) {
            // Make the default display current because the VirtualDisplayDevice
            // code cannot deal with dequeueBuffer() being called outside of the
            // composition loop; however the code below can call glFlush() which
            // is allowed to (and does in some case) call dequeueBuffer().
        displayDevice->makeCurrent(mEGLDisplay, mEGLContext);
        displayDevice->makeCurrent(mEGLDisplay, mEGLContext);
        }
        for (auto& layer : displayDevice->getVisibleLayersSortedByZ()) {
        for (auto& layer : displayDevice->getVisibleLayersSortedByZ()) {
            sp<Fence> releaseFence = Fence::NO_FENCE;
            sp<Fence> releaseFence = Fence::NO_FENCE;
            if (layer->getCompositionType(hwcId) == HWC2::Composition::Client) {
            if (layer->getCompositionType(hwcId) == HWC2::Composition::Client) {