[Piglit] [PATCH 1/4] utils/glx: Don't create X pixmaps deeper than the root window.

Mario Kleiner mario.kleiner.de at gmail.com
Tue Sep 5 05:52:46 UTC 2017


XCreatePixmap doesn't like that. Fixes piglit regression if the
GL implementation exposes RGB10 depth 30 FBConfigs, but the X-Screen
is set to default DefaultDepth of 24 bits, and therefore the root
window only supports depth 24 pixmaps.

On RGB10 enabled Mesa fixes these tests on depth 24 screen:

glx-visuals-depth -pixmap
glx-visuals-stencil -pixmap

Signed-off-by: Mario Kleiner <mario.kleiner.de at gmail.com>
---
 tests/util/piglit-glx-util.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/tests/util/piglit-glx-util.c b/tests/util/piglit-glx-util.c
index 95e33ae..643692a 100644
--- a/tests/util/piglit-glx-util.c
+++ b/tests/util/piglit-glx-util.c
@@ -273,6 +273,7 @@ piglit_glx_iterate_pixmap_fbconfigs(enum piglit_result (*draw)(Display *dpy,
 	bool any_fail = false;
 	bool any_pass = false;
 	Window root_win;
+	int root_depth;
 
 	Display *dpy = XOpenDisplay(NULL);
 	if (!dpy) {
@@ -281,6 +282,7 @@ piglit_glx_iterate_pixmap_fbconfigs(enum piglit_result (*draw)(Display *dpy,
 	}
 	screen = DefaultScreen(dpy);
 	root_win = RootWindow(dpy, screen);
+	root_depth = DefaultDepth(dpy, screen);
 
 	configs = glXGetFBConfigs(dpy, screen, &n_configs);
 	if (!configs) {
@@ -305,6 +307,10 @@ piglit_glx_iterate_pixmap_fbconfigs(enum piglit_result (*draw)(Display *dpy,
 
 		glXGetFBConfigAttrib(dpy, config, GLX_BUFFER_SIZE,
 				     &depth);
+
+		if (depth > root_depth)
+			continue;
+
 		ctx = glXCreateNewContext(dpy, config, GLX_RGBA_TYPE,
 					  NULL, true);
 		pix = XCreatePixmap(dpy, root_win,
-- 
2.7.4



More information about the Piglit mailing list