wsi: fix VK_INCOMPLETE for vkGetSwapchainImagesKHR

This fixes the x11 and wayland backends to not assert:
dEQP-VK.wsi.xcb.swapchain.get_images.incomplete

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Cc: "13.0" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
Dave Airlie
2016-11-15 21:18:50 +00:00
parent 0ac57afa6f
commit 253fa25d09
2 changed files with 22 additions and 10 deletions

View File

@@ -498,19 +498,25 @@ wsi_wl_swapchain_get_images(struct wsi_swapchain *wsi_chain,
uint32_t *pCount, VkImage *pSwapchainImages)
{
struct wsi_wl_swapchain *chain = (struct wsi_wl_swapchain *)wsi_chain;
uint32_t ret_count;
VkResult result;
if (pSwapchainImages == NULL) {
*pCount = chain->image_count;
return VK_SUCCESS;
}
assert(chain->image_count <= *pCount);
for (uint32_t i = 0; i < chain->image_count; i++)
result = VK_SUCCESS;
ret_count = chain->image_count;
if (chain->image_count > *pCount) {
ret_count = *pCount;
result = VK_INCOMPLETE;
}
for (uint32_t i = 0; i < ret_count; i++)
pSwapchainImages[i] = chain->images[i].image;
*pCount = chain->image_count;
return VK_SUCCESS;
return result;
}
static VkResult

View File

@@ -509,19 +509,25 @@ x11_get_images(struct wsi_swapchain *anv_chain,
uint32_t* pCount, VkImage *pSwapchainImages)
{
struct x11_swapchain *chain = (struct x11_swapchain *)anv_chain;
uint32_t ret_count;
VkResult result;
if (pSwapchainImages == NULL) {
*pCount = chain->image_count;
return VK_SUCCESS;
}
assert(chain->image_count <= *pCount);
for (uint32_t i = 0; i < chain->image_count; i++)
result = VK_SUCCESS;
ret_count = chain->image_count;
if (chain->image_count > *pCount) {
ret_count = *pCount;
result = VK_INCOMPLETE;
}
for (uint32_t i = 0; i < ret_count; i++)
pSwapchainImages[i] = chain->images[i].image;
*pCount = chain->image_count;
return VK_SUCCESS;
return result;
}
static VkResult