Commit af151895 authored by Adam Jackson's avatar Adam Jackson 🎧
Browse files

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's avatarAdam Jackson <ajax@redhat.com>
parent 32677ce0
Pipeline #5358 passed with stage
in 1 minute and 33 seconds
......@@ -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;
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment