Rb. Please cc stable On Nov 15, 2016 1:20 PM, "Dave Airlie" <[email protected]> wrote:
> From: Dave Airlie <[email protected]> > > This fixes the x11 and wayland backends to not assert: > dEQP-VK.wsi.xcb.swapchain.get_images.incomplete > > Signed-off-by: Dave Airlie <[email protected]> > --- > src/vulkan/wsi/wsi_common_wayland.c | 16 +++++++++++----- > src/vulkan/wsi/wsi_common_x11.c | 16 +++++++++++----- > 2 files changed, 22 insertions(+), 10 deletions(-) > > diff --git a/src/vulkan/wsi/wsi_common_wayland.c > b/src/vulkan/wsi/wsi_common_wayland.c > index 7691744..f6c218b 100644 > --- a/src/vulkan/wsi/wsi_common_wayland.c > +++ b/src/vulkan/wsi/wsi_common_wayland.c > @@ -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++) > - pSwapchainImages[i] = chain->images[i].image; > + result = VK_SUCCESS; > + ret_count = chain->image_count; > + if (chain->image_count > *pCount) { > + ret_count = *pCount; > + result = VK_INCOMPLETE; > + } > > - *pCount = chain->image_count; > + for (uint32_t i = 0; i < ret_count; i++) > + pSwapchainImages[i] = chain->images[i].image; > > - return VK_SUCCESS; > + return result; > } > > static VkResult > diff --git a/src/vulkan/wsi/wsi_common_x11.c b/src/vulkan/wsi/wsi_common_ > x11.c > index c758d2d..b69a621 100644 > --- a/src/vulkan/wsi/wsi_common_x11.c > +++ b/src/vulkan/wsi/wsi_common_x11.c > @@ -510,19 +510,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++) > - pSwapchainImages[i] = chain->images[i].image; > + result = VK_SUCCESS; > + ret_count = chain->image_count; > + if (chain->image_count > *pCount) { > + ret_count = *pCount; > + result = VK_INCOMPLETE; > + } > > - *pCount = chain->image_count; > + for (uint32_t i = 0; i < ret_count; i++) > + pSwapchainImages[i] = chain->images[i].image; > > - return VK_SUCCESS; > + return result; > } > > static VkResult > -- > 2.7.4 > > _______________________________________________ > mesa-dev mailing list > [email protected] > https://lists.freedesktop.org/mailman/listinfo/mesa-dev >
_______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
