[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