diff options
author | Mathias Agopian <mathias@google.com> | 2012-09-25 19:16:28 -0700 |
---|---|---|
committer | Mathias Agopian <mathias@google.com> | 2012-09-25 19:16:28 -0700 |
commit | 32341381c9493d7953e40f7f79653cfc52868863 (patch) | |
tree | 52fb4cb38161a96e2b8b30e0f4cf6eae282b5c5d | |
parent | 7b1905113712281c777b230648d3fbb69ae4f42c (diff) | |
download | frameworks_native-32341381c9493d7953e40f7f79653cfc52868863.zip frameworks_native-32341381c9493d7953e40f7f79653cfc52868863.tar.gz frameworks_native-32341381c9493d7953e40f7f79653cfc52868863.tar.bz2 |
only abort when errors happen on the main display
Bug: 7232690
Change-Id: I2c4b35a82f131da26deea738ef294e100e536d15
-rw-r--r-- | services/surfaceflinger/DisplayDevice.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
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 @@ void DisplayDevice::swapBuffers(HWComposer& hwc) const { } } - // 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 { |