summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Season Li <seasonl@nvidia.com> 2016-08-04 14:32:44 -0700
committer Glenn Kasten <gkasten@google.com> 2017-05-24 10:27:38 -0700
commit22ee2f4d2b7935a18a1d97bb8b8b058e7d41ad28 (patch)
tree4bbeed37432f60984063b537ac70a62b746d5db4
parentf41404045a695ff78c60276b40d0c84cc221ebee (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.cpp8
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) {