fix crashers with wifi/virtual displays
Bug: 10647742
Change-Id: I4b8ed9da52ef95af3a3b3a04b98514a3776a674d
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp
index 879c911..f83cc06 100644
--- a/services/surfaceflinger/SurfaceFlinger.cpp
+++ b/services/surfaceflinger/SurfaceFlinger.cpp
@@ -963,6 +963,12 @@
hwc.commit();
}
+ // 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 (and does in some case) call
+ // dequeueBuffer().
+ getDefaultDisplayDevice()->makeCurrent(mEGLDisplay, mEGLContext);
+
for (size_t dpy=0 ; dpy<mDisplays.size() ; dpy++) {
sp<const DisplayDevice> hw(mDisplays[dpy]);
const Vector< sp<Layer> >& currentLayers(hw->getVisibleLayersSortedByZ());