From 9ca48916bc9408d0f3f8ac95469ced0a6a342aca Mon Sep 17 00:00:00 2001 From: Jesse Hall Date: Thu, 30 Aug 2012 13:42:23 -0700 Subject: [PATCH] If there is no hwc, call eglSwapBuffers for the main display Bug: 7068568 Change-Id: I6a0309613fe3619d065b9047af6c3fb32b510d97 --- services/surfaceflinger/SurfaceFlinger.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp index cd1b33684..7124b0cc7 100644 --- a/services/surfaceflinger/SurfaceFlinger.cpp +++ b/services/surfaceflinger/SurfaceFlinger.cpp @@ -1255,8 +1255,9 @@ void SurfaceFlinger::doDisplayComposition(const sp& hw, // FIXME: we need to call eglSwapBuffers() on displays that have // GL composition and only on those. // however, currently hwc.commit() already does that for the main - // display and never for the other ones - if (hw->getDisplayType() >= DisplayDevice::DISPLAY_VIRTUAL) { + // display (if there is a hwc) and never for the other ones + if (hw->getDisplayType() >= DisplayDevice::DISPLAY_VIRTUAL || + getHwComposer().initCheck() != NO_ERROR) { // FIXME: EGL spec says: // "surface must be bound to the calling thread's current context, // for the current rendering API."