only abort when errors happen on the main display
Bug: 7232690
Change-Id: I2c4b35a82f131da26deea738ef294e100e536d15
diff --git a/services/surfaceflinger/DisplayDevice.cpp b/services/surfaceflinger/DisplayDevice.cpp
index 56852da..47dd073 100644
--- a/services/surfaceflinger/DisplayDevice.cpp
+++ b/services/surfaceflinger/DisplayDevice.cpp
@@ -228,11 +228,14 @@
}
}
- // TODO: we should at least handle EGL_CONTEXT_LOST, by recreating the
- // context and resetting our state.
- LOG_ALWAYS_FATAL_IF(!success,
- "eglSwapBuffers(%p, %p) failed with 0x%8x",
- mDisplay, mSurface, eglGetError());
+ if (!success) {
+ EGLint error = eglGetError();
+ if (error == EGL_CONTEXT_LOST ||
+ mType == DisplayDevice::DISPLAY_PRIMARY) {
+ LOG_ALWAYS_FATAL("eglSwapBuffers(%p, %p) failed with 0x%08x",
+ mDisplay, mSurface, eglGetError());
+ }
+ }
}
void DisplayDevice::onSwapBuffersCompleted(HWComposer& hwc) const {