[Mesa-stable] [Mesa-dev] [PATCH 4/7] i965/screen: Return false for unsupported formats in query_modifiers
Lionel Landwerlin
lionel.g.landwerlin at intel.com
Thu Jun 7 14:39:28 UTC 2018
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
On 06/06/18 18:47, Jason Ekstrand wrote:
> Cc: mesa-stable at lists.freedesktop.org
> ---
> src/mesa/drivers/dri/i965/intel_screen.c | 16 ++++++++++++++--
> 1 file changed, 14 insertions(+), 2 deletions(-)
>
> diff --git a/src/mesa/drivers/dri/i965/intel_screen.c b/src/mesa/drivers/dri/i965/intel_screen.c
> index 2c783591202..5f0eeb41779 100644
> --- a/src/mesa/drivers/dri/i965/intel_screen.c
> +++ b/src/mesa/drivers/dri/i965/intel_screen.c
> @@ -1262,6 +1262,16 @@ intel_create_image_from_dma_bufs(__DRIscreen *dri_screen,
> loaderPrivate);
> }
>
> +static bool
> +intel_image_format_is_supported(const struct intel_image_format *fmt)
> +{
> + if (fmt->fourcc == __DRI_IMAGE_FOURCC_SARGB8888 ||
> + fmt->fourcc == __DRI_IMAGE_FOURCC_SABGR8888)
> + return false;
> +
> + return true;
> +}
> +
> static GLboolean
> intel_query_dma_buf_formats(__DRIscreen *screen, int max,
> int *formats, int *count)
> @@ -1269,8 +1279,7 @@ intel_query_dma_buf_formats(__DRIscreen *screen, int max,
> int num_formats = 0, i;
>
> for (i = 0; i < ARRAY_SIZE(intel_image_formats); i++) {
> - if (intel_image_formats[i].fourcc == __DRI_IMAGE_FOURCC_SARGB8888 ||
> - intel_image_formats[i].fourcc == __DRI_IMAGE_FOURCC_SABGR8888)
> + if (!intel_image_format_is_supported(&intel_image_formats[i]))
> continue;
>
> num_formats++;
> @@ -1300,6 +1309,9 @@ intel_query_dma_buf_modifiers(__DRIscreen *_screen, int fourcc, int max,
> if (f == NULL)
> return false;
>
> + if (!intel_image_format_is_supported(f))
> + return false;
> +
> for (i = 0; i < ARRAY_SIZE(supported_modifiers); i++) {
> uint64_t modifier = supported_modifiers[i].modifier;
> if (!modifier_is_supported(&screen->devinfo, f, 0, modifier))
More information about the mesa-stable
mailing list