[Mesa-dev] [PATCH 3/7] i965/screen: Refactor query_dma_buf_formats

Lionel Landwerlin lionel.g.landwerlin at intel.com
Thu Jun 7 14:35:48 UTC 2018


Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>

On 06/06/18 18:47, Jason Ekstrand wrote:
> This reworks it to work like query_dma_buf_modifiers and, in particular,
> makes it more flexible so that we can disallow a non-static set of
> formats.
>
> Cc: mesa-stable at lists.freedesktop.org
> ---
>   src/mesa/drivers/dri/i965/intel_screen.c | 25 ++++++++++++------------
>   1 file changed, 13 insertions(+), 12 deletions(-)
>
> diff --git a/src/mesa/drivers/dri/i965/intel_screen.c b/src/mesa/drivers/dri/i965/intel_screen.c
> index 935711106c0..2c783591202 100644
> --- a/src/mesa/drivers/dri/i965/intel_screen.c
> +++ b/src/mesa/drivers/dri/i965/intel_screen.c
> @@ -1266,22 +1266,23 @@ static GLboolean
>   intel_query_dma_buf_formats(__DRIscreen *screen, int max,
>                               int *formats, int *count)
>   {
> -   int i, j = 0;
> +   int num_formats = 0, i;
>   
> -   if (max == 0) {
> -      /* Note, sRGB formats not included. */
> -      *count = ARRAY_SIZE(intel_image_formats) - 2;
> -      return true;
> -   }
> +   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)
> +         continue;
>   
> -   for (i = 0; i < (ARRAY_SIZE(intel_image_formats)) && j < max; i++) {
> -     if (intel_image_formats[i].fourcc == __DRI_IMAGE_FOURCC_SARGB8888 ||
> -         intel_image_formats[i].fourcc == __DRI_IMAGE_FOURCC_SABGR8888)
> -       continue;
> -     formats[j++] = intel_image_formats[i].fourcc;
> +      num_formats++;
> +      if (max == 0)
> +         continue;
> +
> +      formats[num_formats - 1] = intel_image_formats[i].fourcc;
> +      if (num_formats >= max)
> +         break;
>      }
>   
> -   *count = j;
> +   *count = num_formats;
>      return true;
>   }
>   




More information about the mesa-dev mailing list