summaryrefslogtreecommitdiff
path: root/hw/xwayland/xwayland-glamor-gbm.c
diff options
context:
space:
mode:
Diffstat (limited to 'hw/xwayland/xwayland-glamor-gbm.c')
-rw-r--r--hw/xwayland/xwayland-glamor-gbm.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/hw/xwayland/xwayland-glamor-gbm.c b/hw/xwayland/xwayland-glamor-gbm.c
index 06fcf5239..6aa1e4641 100644
--- a/hw/xwayland/xwayland-glamor-gbm.c
+++ b/hw/xwayland/xwayland-glamor-gbm.c
@@ -797,6 +797,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");
@@ -843,6 +844,16 @@ xwl_glamor_gbm_init_egl(struct xwl_screen *xwl_screen)
goto error;
}
+ 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;
+ }
+
if (!epoxy_has_gl_extension("GL_OES_EGL_image")) {
ErrorF("GL_OES_EGL_image not available\n");
goto error;