The backing pixmap needs to be big enough to hold depth-30 rendering,
but the server doesn't necessarily have a depth-30 pixmap format. Just
round up to the 32bpp format you'd be using anyway.
Fixes: mesa/mesa#3527
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6764>
unsigned int i;
Pixmap pixmap;
GLboolean glx_1_3 = GL_FALSE;
+ int depth = config->rgbBits;
if (priv == NULL)
return None;
UnlockDisplay(dpy);
SyncHandle();
+ if (depth == 30)
+ depth = 32;
+
pixmap = XCreatePixmap(dpy, RootWindow(dpy, config->screen),
- width, height, config->rgbBits);
+ width, height, depth);
if (!CreateDRIDrawable(dpy, config, pixmap, id, attrib_list, i)) {
CARD32 o = glx_1_3 ? X_GLXDestroyPbuffer : X_GLXvop_DestroyGLXPbufferSGIX;