diff --git a/.pick_status.json b/.pick_status.json
index 931c9f1..28e9159 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -211,7 +211,7 @@
         "description": "drisw: Cache the depth of the X drawable",
         "nominated": true,
         "nomination_type": 1,
-        "resolution": 0,
+        "resolution": 1,
         "master_sha": null,
         "because_sha": "90d58286cc76c9f6652a8f8342fe568d2fc0bb15"
     },
diff --git a/src/glx/drisw_glx.c b/src/glx/drisw_glx.c
index 3bf1532..069f64d 100644
--- a/src/glx/drisw_glx.c
+++ b/src/glx/drisw_glx.c
@@ -64,7 +64,7 @@
       pdp->shminfo.shmid = shmid;
       pdp->ximage = XShmCreateImage(dpy,
                                     NULL,
-                                    pdp->config->rgbBits,
+                                    pdp->xDepth,
                                     ZPixmap,              /* format */
                                     NULL,                 /* data */
                                     &pdp->shminfo,        /* shminfo */
@@ -94,7 +94,7 @@
       pdp->shminfo.shmid = -1;
       pdp->ximage = XCreateImage(dpy,
                                  NULL,
-                                 pdp->config->rgbBits,
+                                 pdp->xDepth,
                                  ZPixmap, 0,             /* format, offset */
                                  NULL,                   /* data */
                                  0, 0,                   /* width, height */
@@ -647,6 +647,7 @@
    __GLXDRIconfigPrivate *config = (__GLXDRIconfigPrivate *) modes;
    struct drisw_screen *psc = (struct drisw_screen *) base;
    const __DRIswrastExtension *swrast = psc->swrast;
+   Display *dpy = psc->base.dpy;
 
    pdp = calloc(1, sizeof(*pdp));
    if (!pdp)
@@ -656,7 +657,34 @@
    pdp->base.drawable = drawable;
    pdp->base.psc = &psc->base;
    pdp->config = modes;
-   pdp->gc = XCreateGC(psc->base.dpy, xDrawable, 0, NULL);
+   pdp->gc = XCreateGC(dpy, xDrawable, 0, NULL);
+   pdp->xDepth = 0;
+
+   /* Use the visual depth, if this fbconfig corresponds to a visual */
+   if (pdp->config->visualID != 0) {
+      int matches = 0;
+      XVisualInfo *visinfo, template;
+
+      template.visualid = pdp->config->visualID;
+      template.screen = pdp->config->screen;
+      visinfo = XGetVisualInfo(dpy, VisualIDMask | VisualScreenMask,
+                               &template, &matches);
+
+      if (visinfo && matches) {
+         pdp->xDepth = visinfo->depth;
+         XFree(visinfo);
+      }
+   }
+
+   /* Otherwise, or if XGetVisualInfo failed, ask the server */
+   if (pdp->xDepth == 0) {
+      Window root;
+      int x, y;
+      unsigned uw, uh, bw, depth;
+
+      XGetGeometry(dpy, xDrawable, &root, &x, &y, &uw, &uh, &bw, &depth);
+      pdp->xDepth = depth;
+   }
 
    /* Create a new drawable */
    pdp->driDrawable =
diff --git a/src/glx/drisw_priv.h b/src/glx/drisw_priv.h
index bfcf594..663dece 100644
--- a/src/glx/drisw_priv.h
+++ b/src/glx/drisw_priv.h
@@ -66,6 +66,7 @@
    struct glx_config *config;
    XImage *ximage;
    XShmSegmentInfo shminfo;
+   int xDepth;
 };
 
 _X_HIDDEN int
