Crash in createPBufferSurface if eglCreatePbufferSurface fails
EglManager::makeCurrent assumes mPBufferSurface has a valid
surface. This assumtion is not satisfied if
eglCreatePbufferSurface fails.
Bug: 138733217
Test: build
Change-Id: I580dca24f440accda458d53f988bb24cbabede36
Signed-off-by: Roman Kiryanov <rkir@google.com>
diff --git a/libs/hwui/renderthread/EglManager.cpp b/libs/hwui/renderthread/EglManager.cpp
index 159cf49..da27c1f 100644
--- a/libs/hwui/renderthread/EglManager.cpp
+++ b/libs/hwui/renderthread/EglManager.cpp
@@ -289,6 +289,10 @@
if (mPBufferSurface == EGL_NO_SURFACE && !EglExtensions.surfacelessContext) {
EGLint attribs[] = {EGL_WIDTH, 1, EGL_HEIGHT, 1, EGL_NONE};
mPBufferSurface = eglCreatePbufferSurface(mEglDisplay, mEglConfig, attribs);
+ LOG_ALWAYS_FATAL_IF(mPBufferSurface == EGL_NO_SURFACE,
+ "Failed to create a pixel buffer display=%p, "
+ "mEglConfig=%p, error=%s",
+ mEglDisplay, mEglConfig, eglErrorString());
}
}