Module: Mesa Branch: master Commit: eeae4851494c16d2a6591550bfa6ef77d887ebe3 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=eeae4851494c16d2a6591550bfa6ef77d887ebe3
Author: Jason Ekstrand <[email protected]> Date: Tue Jun 5 11:13:40 2018 -0700 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: [email protected] Reviewed-by: Lionel Landwerlin <[email protected]> --- 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 935711106c..2c78359120 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; } _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
