glamor/egl: Avoid crashing on broken configurations
0a9415cf
apparently can tickle bugs in the GL stack where glGetString
returns NULL, presumably because the eglMakeCurrent() didn't manage to
actually install a dispatch table and you're hitting a stub function.
That's clearly not our bug, but if it happens we should at least not
crash. Notice this case and fail gently.
Signed-off-by: Adam Jackson <ajax@redhat.com>
This commit is contained in:
parent
32677ce03d
commit
af151895f3
|
@ -995,6 +995,11 @@ glamor_egl_init(ScrnInfoPtr scrn, int fd)
|
|||
}
|
||||
|
||||
renderer = glGetString(GL_RENDERER);
|
||||
if (!renderer) {
|
||||
xf86DrvMsg(scrn->scrnIndex, X_ERROR,
|
||||
"glGetString() returned NULL, your GL is broken\n");
|
||||
goto error;
|
||||
}
|
||||
if (strstr((const char *)renderer, "llvmpipe")) {
|
||||
xf86DrvMsg(scrn->scrnIndex, X_INFO,
|
||||
"Refusing to try glamor on llvmpipe\n");
|
||||
|
|
|
@ -879,6 +879,7 @@ xwl_glamor_gbm_init_egl(struct xwl_screen *xwl_screen)
|
|||
GLAMOR_GL_CORE_VER_MINOR,
|
||||
EGL_NONE
|
||||
};
|
||||
const GLubyte *renderer;
|
||||
|
||||
if (!xwl_gbm->fd_render_node && !xwl_gbm->drm_authenticated) {
|
||||
ErrorF("Failed to get wl_drm, disabling Glamor and DRI3\n");
|
||||
|
@ -925,7 +926,12 @@ xwl_glamor_gbm_init_egl(struct xwl_screen *xwl_screen)
|
|||
goto error;
|
||||
}
|
||||
|
||||
if (strstr((const char *)glGetString(GL_RENDERER), "llvmpipe")) {
|
||||
renderer = glGetString(GL_RENDERER);
|
||||
if (!renderer) {
|
||||
ErrorF("glGetString() returned NULL, your GL is broken\n");
|
||||
goto error;
|
||||
}
|
||||
if (strstr((const char *)renderer, "llvmpipe")) {
|
||||
ErrorF("Refusing to try glamor on llvmpipe\n");
|
||||
goto error;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue