Bläddra i källkod

i965/screen: Refactor query_dma_buf_formats

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@lists.freedesktop.org
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
tags/18.2-branchpoint
Jason Ekstrand 7 år sedan
förälder
incheckning
eeae485149
1 ändrade filer med 13 tillägg och 12 borttagningar
  1. 13
    12
      src/mesa/drivers/dri/i965/intel_screen.c

+ 13
- 12
src/mesa/drivers/dri/i965/intel_screen.c Visa fil

@@ -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;
}


Laddar…
Avbryt
Spara