Virtual Display async mode is overridden
Virtual Display async setting is overridden by eglApi.c causing stall during composition. Set the async mode after eglCreateWindowSurface() b/13139121 Change-Id: I336ca145552e387217cd8bea6e4b7f5f490a274d Signed-off-by: Pierre Couillaud <pierre@broadcom.com>
This commit is contained in:
parent
9076fa78d2
commit
4ee5696dfb
@ -77,16 +77,6 @@ DisplayDevice::DisplayDevice(
|
||||
mNativeWindow = new Surface(producer, false);
|
||||
ANativeWindow* const window = mNativeWindow.get();
|
||||
|
||||
// Make sure that composition can never be stalled by a virtual display
|
||||
// consumer that isn't processing buffers fast enough. We have to do this
|
||||
// in two places:
|
||||
// * Here, in case the display is composed entirely by HWC.
|
||||
// * In makeCurrent(), using eglSwapInterval. Some EGL drivers set the
|
||||
// window's swap interval in eglMakeCurrent, so they'll override the
|
||||
// interval we set here.
|
||||
if (mType >= DisplayDevice::DISPLAY_VIRTUAL)
|
||||
window->setSwapInterval(window, 0);
|
||||
|
||||
/*
|
||||
* Create our display's surface
|
||||
*/
|
||||
@ -101,6 +91,16 @@ DisplayDevice::DisplayDevice(
|
||||
eglQuerySurface(display, surface, EGL_WIDTH, &mDisplayWidth);
|
||||
eglQuerySurface(display, surface, EGL_HEIGHT, &mDisplayHeight);
|
||||
|
||||
// Make sure that composition can never be stalled by a virtual display
|
||||
// consumer that isn't processing buffers fast enough. We have to do this
|
||||
// in two places:
|
||||
// * Here, in case the display is composed entirely by HWC.
|
||||
// * In makeCurrent(), using eglSwapInterval. Some EGL drivers set the
|
||||
// window's swap interval in eglMakeCurrent, so they'll override the
|
||||
// interval we set here.
|
||||
if (mType >= DisplayDevice::DISPLAY_VIRTUAL)
|
||||
window->setSwapInterval(window, 0);
|
||||
|
||||
mDisplay = display;
|
||||
mSurface = surface;
|
||||
mFormat = format;
|
||||
|
Loading…
Reference in New Issue
Block a user