diff --git a/opengl/libs/EGL/eglApi.cpp b/opengl/libs/EGL/eglApi.cpp index 4147af87493801e11d7f5f7dc21b465e985a7640..c7f7e92532eded24d6b2e38bd9a82102cde459a9 100644 --- a/opengl/libs/EGL/eglApi.cpp +++ b/opengl/libs/EGL/eglApi.cpp @@ -437,8 +437,12 @@ EGLBoolean eglChooseConfig( EGLDisplay dpy, const EGLint *attrib_list, } if (attrib_list) { - EGLint temp_attribs[temp_index + 1]; + EGLint temp_attribs[temp_index + 1 + 2]; memcpy(&temp_attribs[0], attrib_list, (temp_index + 1) * sizeof(EGLint)); + // If no EGL_STENCIL_SIZE in |attrib_list|, then add one entry with the value 8. + temp_attribs[temp_index] = EGL_STENCIL_SIZE; + temp_attribs[temp_index + 1] = 8; + temp_attribs[temp_index + 2] = EGL_NONE; if (temp_index > 0) { for (int i = 0; i < temp_index; i += 2) { @@ -464,6 +468,7 @@ EGLBoolean eglChooseConfig( EGLDisplay dpy, const EGLint *attrib_list, res = cnx->egl.eglChooseConfig( dp->disp.dpy, temp_attribs, configs, config_size, num_config); } else { + ALOGE("eglChooseConfig attrib_list is null!"); res = cnx->egl.eglChooseConfig( dp->disp.dpy, attrib_list, configs, config_size, num_config); }