mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-25 00:00:11 +01:00
vulkan/wsi: Don't consider VK_SUBOPTIMAL_KHR to be an error condition
This was causing vkAcquireNextImageKHR to not signal the fences and semaphores. In the case where the semaphore was brand new, this could cause an unsignalled syncobj to be passed into execbuffer2 which it will reject with -EINVAL leading to VK_ERROR_DEVICE_LOST. Thanks to Henrik Rydgård who works on the PPSSPP project for helping me figure this out. Fixes:ca3cfbf6f1"vk: Add an initial implementation of the actual..." Fixes:778b51f491"vulkan/wsi: Add a hooks for signaling semaphores..." Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5672>
This commit is contained in:
parent
c5d8961b0b
commit
b0bbb62325
1 changed files with 3 additions and 3 deletions
|
|
@ -1100,7 +1100,7 @@ wsi_common_acquire_next_image2(const struct wsi_device *wsi,
|
|||
|
||||
VkResult result = swapchain->acquire_next_image(swapchain, pAcquireInfo,
|
||||
pImageIndex);
|
||||
if (result != VK_SUCCESS)
|
||||
if (result != VK_SUCCESS && result != VK_SUBOPTIMAL_KHR)
|
||||
return result;
|
||||
|
||||
if (wsi->set_memory_ownership) {
|
||||
|
|
@ -1124,7 +1124,7 @@ wsi_common_acquire_next_image2(const struct wsi_device *wsi,
|
|||
image->memory);
|
||||
}
|
||||
|
||||
return VK_SUCCESS;
|
||||
return result;
|
||||
}
|
||||
|
||||
VkResult
|
||||
|
|
@ -1226,7 +1226,7 @@ wsi_common_queue_present(const struct wsi_device *wsi,
|
|||
region = ®ions->pRegions[i];
|
||||
|
||||
result = swapchain->queue_present(swapchain, image_index, region);
|
||||
if (result != VK_SUCCESS)
|
||||
if (result != VK_SUCCESS && result != VK_SUBOPTIMAL_KHR)
|
||||
goto fail_present;
|
||||
|
||||
if (wsi->set_memory_ownership) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue