[Mesa-dev] [PATCH] egl: Report correct GBM formats

Alex Deucher alexdeucher at gmail.com
Tue Mar 3 07:34:46 PST 2015


On Mon, Mar 2, 2015 at 9:23 AM, Tom Stellard <thomas.stellard at amd.com> wrote:
> From: Daniel Stone <daniels at collabora.com>
>
> This fixes almost all piglit regressions when running with
> PIGLIT_PLATFORM=gbm
>
> Tom Stellard:
>   - Fix ARGB2101010 format
>
> Cc: "10.4 10.5" <mesa-stable at lists.freedesktop.org>

Looks reasonable to me.

Reviewed-by: Alex Deucher <alexander.deucher at amd.com>

> ---
>
> I'm not sure if the commit message makes sense, I'm open to suggestions.
>
> src/egl/drivers/dri2/platform_drm.c | 16 +++++++++++-----
>  1 file changed, 11 insertions(+), 5 deletions(-)
>
> diff --git a/src/egl/drivers/dri2/platform_drm.c b/src/egl/drivers/dri2/platform_drm.c
> index 02e87f7..bf205be 100644
> --- a/src/egl/drivers/dri2/platform_drm.c
> +++ b/src/egl/drivers/dri2/platform_drm.c
> @@ -668,15 +668,21 @@ dri2_initialize_drm(_EGLDriver *drv, _EGLDisplay *disp)
>
>     for (i = 0; dri2_dpy->driver_configs[i]; i++) {
>        EGLint format, attr_list[3];
> -      unsigned int mask;
> +      unsigned int red, alpha;
>
>        dri2_dpy->core->getConfigAttrib(dri2_dpy->driver_configs[i],
> -                                       __DRI_ATTRIB_RED_MASK, &mask);
> -      if (mask == 0x3ff00000)
> +                                       __DRI_ATTRIB_RED_MASK, &red);
> +      dri2_dpy->core->getConfigAttrib(dri2_dpy->driver_configs[i],
> +                                       __DRI_ATTRIB_ALPHA_MASK, &alpha);
> +      if (red == 0x3ff00000 && alpha == 0x00000000)
>           format = GBM_FORMAT_XRGB2101010;
> -      else if (mask == 0x00ff0000)
> +      else if (red == 0x3ff00000 && alpha == 0xc0000000)
> +         format = GBM_FORMAT_ARGB2101010;
> +      else if (red == 0x00ff0000 && alpha == 0x00000000)
>           format = GBM_FORMAT_XRGB8888;
> -      else if (mask == 0xf800)
> +      else if (red == 0x00ff0000 && alpha == 0xff000000)
> +         format = GBM_FORMAT_ARGB8888;
> +      else if (red == 0xf800)
>           format = GBM_FORMAT_RGB565;
>        else
>           continue;
> --
> 2.0.4
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list