[Mesa-dev] [PATCH 1/2] vulkan/wsi/wayland: Handle VK_INCOMPLETE for GetFormats
Lionel Landwerlin
lionel.g.landwerlin at intel.com
Wed Jan 25 11:36:06 UTC 2017
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
On 25/01/17 00:44, Jason Ekstrand wrote:
> ---
> src/vulkan/wsi/wsi_common_wayland.c | 16 +++++++++-------
> 1 file changed, 9 insertions(+), 7 deletions(-)
>
> diff --git a/src/vulkan/wsi/wsi_common_wayland.c b/src/vulkan/wsi/wsi_common_wayland.c
> index 687ac9c..d745413 100644
> --- a/src/vulkan/wsi/wsi_common_wayland.c
> +++ b/src/vulkan/wsi/wsi_common_wayland.c
> @@ -409,25 +409,27 @@ wsi_wl_surface_get_formats(VkIcdSurfaceBase *icd_surface,
> if (!display)
> return VK_ERROR_OUT_OF_HOST_MEMORY;
>
> - uint32_t count = u_vector_length(&display->formats);
> -
> if (pSurfaceFormats == NULL) {
> - *pSurfaceFormatCount = count;
> + *pSurfaceFormatCount = u_vector_length(&display->formats);
> return VK_SUCCESS;
> }
>
> - assert(*pSurfaceFormatCount >= count);
> - *pSurfaceFormatCount = count;
> -
> + uint32_t count = 0;
> VkFormat *f;
> u_vector_foreach(f, &display->formats) {
> - *(pSurfaceFormats++) = (VkSurfaceFormatKHR) {
> + if (count == *pSurfaceFormatCount)
> + return VK_INCOMPLETE;
> +
> + pSurfaceFormats[count++] = (VkSurfaceFormatKHR) {
> .format = *f,
> /* TODO: We should get this from the compositor somehow */
> .colorSpace = VK_COLORSPACE_SRGB_NONLINEAR_KHR,
> };
> }
>
> + assert(*pSurfaceFormatCount <= count);
> + *pSurfaceFormatCount = count;
> +
> return VK_SUCCESS;
> }
>
More information about the mesa-dev
mailing list