diff --git a/src/glx/dri_common.c b/src/glx/dri_common.c index 0be684dda95..27e78fb3799 100644 --- a/src/glx/dri_common.c +++ b/src/glx/dri_common.c @@ -392,15 +392,13 @@ driFetchDrawable(struct glx_context *gc, GLXDrawable glxDrawable) /* Infer the GLX drawable type. */ if (__glXGetDrawableAttribute(dpy, glxDrawable, GLX_DRAWABLE_TYPE, &type)) { - if (type != GLX_PBUFFER_BIT) { - ErrorMessageF("GLX drawable type is not supported\n"); + /* Xserver may support query with raw X11 window. */ + if (type == GLX_PIXMAP_BIT) { + ErrorMessageF("GLXPixmap drawable type is not supported\n"); return NULL; } } else { - /* Xserver may not implement GLX_DRAWABLE_TYPE query yet, or glxDrawable - * is a X window. Assume it's a GLXPbuffer in former case, because we don't - * know GLXPixmap and GLXWindow's X drawable ID anyway. - */ + /* Xserver may not implement GLX_DRAWABLE_TYPE query yet. */ type = GLX_PBUFFER_BIT | GLX_WINDOW_BIT; }