diff options
| author | 2016-08-04 14:32:44 -0700 | |
|---|---|---|
| committer | 2017-05-24 10:27:38 -0700 | |
| commit | 22ee2f4d2b7935a18a1d97bb8b8b058e7d41ad28 (patch) | |
| tree | 4bbeed37432f60984063b537ac70a62b746d5db4 | |
| parent | f41404045a695ff78c60276b40d0c84cc221ebee (diff) | |
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
| -rw-r--r-- | services/surfaceflinger/SurfaceFlinger.cpp | 8 |
1 files changed, 1 insertions, 7 deletions
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp index deeb45649d..617aec37c8 100644 --- a/services/surfaceflinger/SurfaceFlinger.cpp +++ b/services/surfaceflinger/SurfaceFlinger.cpp @@ -1405,13 +1405,7 @@ void SurfaceFlinger::postFramebuffer() mHwc->commit(hwcId); } 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()) { sp<Fence> releaseFence = Fence::NO_FENCE; if (layer->getCompositionType(hwcId) == HWC2::Composition::Client) { |