summaryrefslogtreecommitdiffstats
path: root/src/egl/drivers/dri2
diff options
context:
space:
mode:
authorBenjamin Franzke <[email protected]>2011-06-19 23:48:39 +0200
committerKristian Høgsberg <[email protected]>2011-06-20 10:06:24 -0400
commit80636ff2da374ca417db5afaaa0ab0cc5de9272d (patch)
tree1bee86817f3e291069d3b7eb73f62155ef44e4df /src/egl/drivers/dri2
parent8eea050f5aed6ad8aeb64105c0e2581f0fd0b10a (diff)
egl_dri2/x11: Check availability of the dri2 extension
Do this before query versions, or xcb will shutdown and the connection can not be used for swrast.
Diffstat (limited to 'src/egl/drivers/dri2')
-rw-r--r--src/egl/drivers/dri2/platform_x11.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/egl/drivers/dri2/platform_x11.c b/src/egl/drivers/dri2/platform_x11.c
index 8bff294c9e6..4e00c958cbd 100644
--- a/src/egl/drivers/dri2/platform_x11.c
+++ b/src/egl/drivers/dri2/platform_x11.c
@@ -479,10 +479,19 @@ dri2_connect(struct dri2_egl_display *dri2_dpy)
xcb_generic_error_t *error;
xcb_screen_iterator_t s;
char *driver_name, *device_name;
+ const xcb_query_extension_reply_t *extension;
xcb_prefetch_extension_data (dri2_dpy->conn, &xcb_xfixes_id);
xcb_prefetch_extension_data (dri2_dpy->conn, &xcb_dri2_id);
+ extension = xcb_get_extension_data(dri2_dpy->conn, &xcb_xfixes_id);
+ if (!(extension && extension->present))
+ return EGL_FALSE;
+
+ extension = xcb_get_extension_data(dri2_dpy->conn, &xcb_dri2_id);
+ if (!(extension && extension->present))
+ return EGL_FALSE;
+
xfixes_query_cookie = xcb_xfixes_query_version(dri2_dpy->conn,
XCB_XFIXES_MAJOR_VERSION,
XCB_XFIXES_MINOR_VERSION);