diff --git a/src/vulkan/wsi/wsi_common.c b/src/vulkan/wsi/wsi_common.c index d9906091ed9..2108f7f703f 100644 --- a/src/vulkan/wsi/wsi_common.c +++ b/src/vulkan/wsi/wsi_common.c @@ -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) {