[PATCH xserver] glamor: Add support for exporting depth 16 pixmaps.

Michel Dänzer michel at daenzer.net
Wed Sep 5 07:54:48 UTC 2018


On 2018-09-05 6:00 a.m., Eric Anholt wrote:
> With a patch to mesa to expose rgb565 pbuffers even on a server with
> only depth 24 and 32 visuals, fixes
> dEQP-EGL.functional.render.single_context.gles2.rgb565_pbuffer.  Those
> pbuffers (or at least something renderable with 565) are required by
> the current CTS for GLES3, and having the server support DRI3 on those
> pixmaps means that we can avoid having a different path for EGL
> pbuffers compared to pixmaps.
> 
> Signed-off-by: Eric Anholt <eric at anholt.net>
> ---
>  glamor/glamor_egl.c | 22 ++++++++++++++--------
>  1 file changed, 14 insertions(+), 8 deletions(-)
> 
> diff --git a/glamor/glamor_egl.c b/glamor/glamor_egl.c
> index b33d8ef1598e..df278b1a1a02 100644
> --- a/glamor/glamor_egl.c
> +++ b/glamor/glamor_egl.c
> @@ -280,18 +280,24 @@ glamor_make_pixmap_exportable(PixmapPtr pixmap, Bool modifiers_ok)
>          (modifiers_ok || !pixmap_priv->used_modifiers))
>          return TRUE;
>  
> -    if (pixmap->drawable.bitsPerPixel != 32) {
> +    switch (pixmap->drawable.depth) {
> +    case 30:
> +        format = GBM_FORMAT_ARGB2101010;
> +        break;
> +    case 32:
> +    case 24:
> +        format = GBM_FORMAT_ARGB8888;
> +        break;
> +    case 16:
> +        format = GBM_FORMAT_RGB565;
> +        break;
> +    default:
>          xf86DrvMsg(scrn->scrnIndex, X_ERROR,
> -                   "Failed to make %dbpp pixmap exportable\n",
> -                   pixmap->drawable.bitsPerPixel);
> +                   "Failed to make %d depth, %dbpp pixmap exportable\n",
> +                   pixmap->drawable.depth, pixmap->drawable.bitsPerPixel);
>          return FALSE;
>      }
>  
> -    if (pixmap->drawable.depth == 30)
> -	format = GBM_FORMAT_ARGB2101010;
> -    else
> -        format = GBM_FORMAT_ARGB8888;
> -
>  #ifdef GBM_BO_WITH_MODIFIERS
>      if (modifiers_ok && glamor_egl->dmabuf_capable) {
>          uint32_t num_modifiers;
>
Reviewed-by: Michel Dänzer <michel.daenzer at amd.com>


-- 
Earthling Michel Dänzer               |               http://www.amd.com
Libre software enthusiast             |             Mesa and X developer


More information about the xorg-devel mailing list