drawable-type-detection patch is applied upstream.
This commit is contained in:
parent
d371fe35e0
commit
dfb63cf45c
@ -1,54 +0,0 @@
|
|||||||
From e3ef7eedc94fe4eb2af2f79324bfaf4e56b37961 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Qiang Yu <yuq825@gmail.com>
|
|
||||||
Date: Wed, 8 Dec 2021 10:57:45 +0800
|
|
||||||
Subject: [PATCH] glx: fix regression for drawable type detection
|
|
||||||
|
|
||||||
Newer version of XServer supporting GLX_DRAWABLE_TYPE query also
|
|
||||||
support query with raw X11 window ID besides GLXWindow ID. So we
|
|
||||||
should not limit the suppported type to GLXPbuffer when query
|
|
||||||
success.
|
|
||||||
|
|
||||||
Otherwise can't start GLX application on newer XServer with:
|
|
||||||
|
|
||||||
libGL error: GLX drawable type is not supported
|
|
||||||
libGL error: GLX drawable type is not supported
|
|
||||||
X Error of failed request: GLXBadContext
|
|
||||||
Major opcode of failed request: 149 (GLX)
|
|
||||||
Minor opcode of failed request: 5 (X_GLXMakeCurrent)
|
|
||||||
Serial number of failed request: 35
|
|
||||||
Current serial number in output stream: 35
|
|
||||||
|
|
||||||
Fixes: 6625c960c58 ("glx: check drawable type before create drawble")
|
|
||||||
|
|
||||||
Signed-off-by: Qiang Yu <yuq825@gmail.com>
|
|
||||||
---
|
|
||||||
src/glx/dri_common.c | 10 ++++------
|
|
||||||
1 file changed, 4 insertions(+), 6 deletions(-)
|
|
||||||
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
|
|
||||||
--
|
|
||||||
2.34.1
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user