Explorar o código

renderer_vulkan: ensure exception on surface loss

Liam %!s(int64=2) %!d(string=hai) anos
pai
achega
8427b9d49d
Modificáronse 1 ficheiros con 6 adicións e 0 borrados
  1. 6 0
      src/video_core/renderer_vulkan/vk_swapchain.cpp

+ 6 - 0
src/video_core/renderer_vulkan/vk_swapchain.cpp

@@ -147,6 +147,9 @@ bool Swapchain::AcquireNextImage() {
     case VK_ERROR_OUT_OF_DATE_KHR:
     case VK_ERROR_OUT_OF_DATE_KHR:
         is_outdated = true;
         is_outdated = true;
         break;
         break;
+    case VK_ERROR_SURFACE_LOST_KHR:
+        vk::Check(result);
+        break;
     default:
     default:
         LOG_ERROR(Render_Vulkan, "vkAcquireNextImageKHR returned {}", vk::ToString(result));
         LOG_ERROR(Render_Vulkan, "vkAcquireNextImageKHR returned {}", vk::ToString(result));
         break;
         break;
@@ -180,6 +183,9 @@ void Swapchain::Present(VkSemaphore render_semaphore) {
     case VK_ERROR_OUT_OF_DATE_KHR:
     case VK_ERROR_OUT_OF_DATE_KHR:
         is_outdated = true;
         is_outdated = true;
         break;
         break;
+    case VK_ERROR_SURFACE_LOST_KHR:
+        vk::Check(result);
+        break;
     default:
     default:
         LOG_CRITICAL(Render_Vulkan, "Failed to present with error {}", vk::ToString(result));
         LOG_CRITICAL(Render_Vulkan, "Failed to present with error {}", vk::ToString(result));
         break;
         break;