From: Alexandros Frantzis alexandros.frantzis@collabora.com
--- dlls/winewayland.drv/vulkan.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/dlls/winewayland.drv/vulkan.c b/dlls/winewayland.drv/vulkan.c index ffdd9291a75..396acdbc174 100644 --- a/dlls/winewayland.drv/vulkan.c +++ b/dlls/winewayland.drv/vulkan.c @@ -280,6 +280,7 @@ static VkResult check_queue_present(const VkPresentInfoKHR *present_info, wine_vk_swapchain_from_handle(present_info->pSwapchains[i]); HWND hwnd = wine_vk_swapchain->hwnd; struct wayland_surface *wayland_surface; + VkResult swap_res;
if ((wayland_surface = wayland_surface_lock_hwnd(hwnd))) { @@ -293,13 +294,21 @@ static VkResult check_queue_present(const VkPresentInfoKHR *present_info, if (client_width != wine_vk_swapchain->extent.width || client_height != wine_vk_swapchain->extent.height) { - vk_result_update_severity(&res, VK_ERROR_OUT_OF_DATE_KHR); + swap_res = VK_ERROR_OUT_OF_DATE_KHR; + } + else + { + swap_res = VK_SUCCESS; } } else { - vk_result_update_severity(&res, VK_ERROR_SURFACE_LOST_KHR); + swap_res = VK_ERROR_SURFACE_LOST_KHR; } + + if (present_info->pResults) + vk_result_update_severity(&present_info->pResults[i], swap_res); + vk_result_update_severity(&res, swap_res); }
return res;