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 {