[Piglit] [PATCH 1/4] utils/glx: Don't create X pixmaps deeper than the root window.
Michel Dänzer
michel at daenzer.net
Wed Sep 6 07:30:05 UTC 2017
On 05/09/17 02:52 PM, Mario Kleiner wrote:
> 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,
>
This is not correct. This X server, running at depth 24, supports the
following pixmap depths according to xdpyinfo:
number of supported pixmap formats: 7
supported pixmap formats:
depth 1, bits_per_pixel 1, scanline_pad 32
depth 4, bits_per_pixel 8, scanline_pad 32
depth 8, bits_per_pixel 8, scanline_pad 32
depth 15, bits_per_pixel 16, scanline_pad 32
depth 16, bits_per_pixel 16, scanline_pad 32
depth 24, bits_per_pixel 32, scanline_pad 32
depth 32, bits_per_pixel 32, scanline_pad 32
It sounds like this doesn't list depth 30 for you, which indicates an
issue with the Xorg (driver) changes for depth 30 support.
--
Earthling Michel Dänzer | http://www.amd.com
Libre software enthusiast | Mesa and X developer
More information about the Piglit
mailing list