From: Lionel Landwerlin Date: Thu, 12 Dec 2019 15:51:26 +0000 (+0200) Subject: vulkan/wsi: error out when image fence doesn't signal X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=bc36160ccb07a662b2cfd7f0dec56e9c3f4f5aff;p=mesa.git vulkan/wsi: error out when image fence doesn't signal If for some reason the fence associated with an image doesn't signal, we're likely in a device lost scenario, we should report that error. We can't really wait for a given amount of time because we could get a timeout and that is not a valid error to report for vkQueuePresentKHR, so just wait forever. Signed-off-by: Lionel Landwerlin Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/830 Reviewed-by: Tapani Pälli --- diff --git a/src/vulkan/wsi/wsi_common.c b/src/vulkan/wsi/wsi_common.c index 65ab543cc5d..e45810d9c5d 100644 --- a/src/vulkan/wsi/wsi_common.c +++ b/src/vulkan/wsi/wsi_common.c @@ -1057,10 +1057,16 @@ wsi_common_queue_present(const struct wsi_device *wsi, if (result != VK_SUCCESS) goto fail_present; } else { - wsi->WaitForFences(device, 1, &swapchain->fences[image_index], - true, 1); + result = + wsi->WaitForFences(device, 1, &swapchain->fences[image_index], + true, ~0ull); + if (result != VK_SUCCESS) + goto fail_present; - wsi->ResetFences(device, 1, &swapchain->fences[image_index]); + result = + wsi->ResetFences(device, 1, &swapchain->fences[image_index]); + if (result != VK_SUCCESS) + goto fail_present; } struct wsi_image *image =