Insert vkDeviceWaitIdle to prevent VK_DEVICE_LOST. (#3363)

This commit is contained in:
Martijn Courteaux 2024-10-08 16:00:02 +02:00 committed by GitHub
parent 0a5fe7024c
commit fdb09ca401
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -7100,6 +7100,12 @@ VK_DESTROY
const VkDevice device = s_renderVK->m_device; const VkDevice device = s_renderVK->m_device;
const VkAllocationCallbacks* allocatorCb = s_renderVK->m_allocatorCb; const VkAllocationCallbacks* allocatorCb = s_renderVK->m_allocatorCb;
// Waiting for the device to be idle seems to get rid of VK_DEVICE_LOST
// upon resizing the window quickly. (See https://github.com/mpv-player/mpv/issues/8360
// and https://github.com/bkaradzic/bgfx/issues/3227).
result = vkDeviceWaitIdle(device);
BX_WARN(VK_SUCCESS == result, "Create swapchain error: vkDeviceWaitIdle() failed: %d: %s", result, getName(result));
VkSurfaceCapabilitiesKHR surfaceCapabilities; VkSurfaceCapabilitiesKHR surfaceCapabilities;
result = vkGetPhysicalDeviceSurfaceCapabilitiesKHR(physicalDevice, m_surface, &surfaceCapabilities); result = vkGetPhysicalDeviceSurfaceCapabilitiesKHR(physicalDevice, m_surface, &surfaceCapabilities);