[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-dev mailing list