glx: Add a more informative debug message in a DRI3 error path.
authorEric Anholt <eric@anholt.net>
Thu, 7 Nov 2013 23:44:57 +0000 (15:44 -0800)
committerEric Anholt <eric@anholt.net>
Fri, 8 Nov 2013 03:08:09 +0000 (19:08 -0800)
src/glx/dri3_glx.c

index a78fc800bdbab25645ba115dd9f0f1bdf866b976..61cb2de1d00671b388978dc4f7c84a5394df7885 100644 (file)
@@ -1579,6 +1579,7 @@ static const struct glx_screen_vtable dri3_screen_vtable = {
 static struct glx_screen *
 dri3_create_screen(int screen, struct glx_display * priv)
 {
+   xcb_connection_t *c = XGetXCBConnection(priv->dpy);
    const __DRIconfig **driver_configs;
    const __DRIextension **extensions;
    const struct dri3_display *const pdp = (struct dri3_display *)
@@ -1602,9 +1603,15 @@ dri3_create_screen(int screen, struct glx_display * priv)
 
    psc->fd = dri3_open(priv->dpy, RootWindow(priv->dpy, screen), None);
    if (psc->fd < 0) {
+      int conn_error = xcb_connection_has_error(c);
+
       glx_screen_cleanup(&psc->base);
       free(psc);
       InfoMessageF("screen %d does not appear to be DRI3 capable\n", screen);
+
+      if (conn_error)
+         ErrorMessageF("Connection closed during DRI3 initialization failure");
+
       return NULL;
    }
    deviceName = NULL;