From f87d72152c92694d21165c2cd12e844f16755698 Mon Sep 17 00:00:00 2001 From: David Rosca Date: Tue, 11 Mar 2025 13:41:30 +0100 Subject: [PATCH] frontends/va: Support A8R8G8B8 format for processing Reviewed-by: Ruijing Dong Part-of: --- src/gallium/frontends/va/config.c | 3 +++ src/gallium/frontends/va/surface.c | 3 +++ 2 files changed, 6 insertions(+) diff --git a/src/gallium/frontends/va/config.c b/src/gallium/frontends/va/config.c index aceafe8d7f9..e05096b5df5 100644 --- a/src/gallium/frontends/va/config.c +++ b/src/gallium/frontends/va/config.c @@ -174,6 +174,9 @@ static unsigned int get_screen_supported_va_rt_formats(struct pipe_screen *pscre profile, entrypoint) || pscreen->is_video_format_supported(pscreen, PIPE_FORMAT_B8G8R8X8_UNORM, + profile, + entrypoint) || + pscreen->is_video_format_supported(pscreen, PIPE_FORMAT_A8R8G8B8_UNORM, profile, entrypoint)) supported_rt_formats |= VA_RT_FORMAT_RGB32; diff --git a/src/gallium/frontends/va/surface.c b/src/gallium/frontends/va/surface.c index a56696e67bf..c82b7cd8d26 100644 --- a/src/gallium/frontends/va/surface.c +++ b/src/gallium/frontends/va/surface.c @@ -574,6 +574,7 @@ vlVaQuerySurfaceAttributes(VADriverContextP ctx, VAConfigID config_id, vlVaAddSurfaceFormat(pscreen, config, PIPE_FORMAT_B8G8R8A8_UNORM, attribs, &i); vlVaAddSurfaceFormat(pscreen, config, PIPE_FORMAT_R8G8B8X8_UNORM, attribs, &i); vlVaAddSurfaceFormat(pscreen, config, PIPE_FORMAT_B8G8R8X8_UNORM, attribs, &i); + vlVaAddSurfaceFormat(pscreen, config, PIPE_FORMAT_A8R8G8B8_UNORM, attribs, &i); } if (config->rt_format & VA_RT_FORMAT_RGB32_10) { @@ -1576,6 +1577,8 @@ static uint32_t pipe_format_to_drm_format(enum pipe_format format) return DRM_FORMAT_XRGB8888; case PIPE_FORMAT_R8G8B8X8_UNORM: return DRM_FORMAT_XBGR8888; + case PIPE_FORMAT_A8R8G8B8_UNORM: + return DRM_FORMAT_BGRA8888; case PIPE_FORMAT_B10G10R10A2_UNORM: return DRM_FORMAT_ARGB2101010; case PIPE_FORMAT_R10G10B10A2_UNORM: