[Mesa-dev] [PATCH 09/10] egl/x11: Match depth 30 RGB visuals to 32-bit RGBA EGLConfigs.
Eric Engestrom
eric.engestrom at imgtec.com
Wed Sep 6 13:18:11 UTC 2017
On Tuesday, 2017-09-05 07:01:13 +0200, Mario Kleiner wrote:
> Similar to the matching of 24 bit RGB visuals to 32-bit
> RGBA EGLConfigs.
>
> Fixes failure of piglit egl tests to select ARGB2101010
> visuals via eglChooseConfig() with EGL_ALPHA_BITS 2 on
> a depth 30 X-Screen.
>
> Signed-off-by: Mario Kleiner <mario.kleiner.de at gmail.com>
> ---
> src/egl/drivers/dri2/platform_x11.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/src/egl/drivers/dri2/platform_x11.c b/src/egl/drivers/dri2/platform_x11.c
> index 062c8a4..df768ab 100644
> --- a/src/egl/drivers/dri2/platform_x11.c
> +++ b/src/egl/drivers/dri2/platform_x11.c
> @@ -781,13 +781,14 @@ dri2_x11_add_configs_for_visuals(struct dri2_egl_display *dri2_dpy,
> config_count++;
>
> /* Allow a 24-bit RGB visual to match a 32-bit RGBA EGLConfig.
> + * Ditto for 30-bit RGB visuals to match a 32-bit RGBA EGLConfig.
> * Otherwise it will only match a 32-bit RGBA visual. On a
> * composited window manager on X11, this will make all of the
> * EGLConfigs with destination alpha get blended by the
> * compositor. This is probably not what the application
> * wants... especially on drivers that only have 32-bit RGBA
> * EGLConfigs! */
> - if (d.data->depth == 24) {
> + if (d.data->depth == 24 || d.data->depth == 30) {
> rgba_masks[3] =
> ~(rgba_masks[0] | rgba_masks[1] | rgba_masks[2]);
> dri2_conf = dri2_add_config(disp, config, config_count + 1,
> --
> 2.7.4
>
Haven't looked into it in details, but I feel like the two switches in
swrastCreateDrawable() and dri2_create_image_khr_pixmap() would need
updating as well, don't they? (probably as a separate patch though)
More information about the mesa-dev
mailing list