diff options
| author | Joshua Ashton <joshua@froggi.es> | 2021-04-11 08:46:28 +0100 |
|---|---|---|
| committer | Joshua Ashton <joshua@froggi.es> | 2021-04-11 09:27:50 +0100 |
| commit | bcf58c82108c32aa3e2118be152bdc728bf4744e (patch) | |
| tree | 0c607a634db7077157101f9f703a6f77c0a48d86 /src/video_core/renderer_vulkan/renderer_vulkan.cpp | |
| parent | 4f60818eaecfb7dfae9f89523a7dd4a350979157 (diff) | |
renderer_vulkan: Check return value of AcquireNextImage
We can get into a really bad state by ignoring this
leading to device loss and using incorrect resources.
Diffstat (limited to 'src/video_core/renderer_vulkan/renderer_vulkan.cpp')
| -rw-r--r-- | src/video_core/renderer_vulkan/renderer_vulkan.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/video_core/renderer_vulkan/renderer_vulkan.cpp b/src/video_core/renderer_vulkan/renderer_vulkan.cpp index 1cc720ddd..14e5f36e2 100644 --- a/src/video_core/renderer_vulkan/renderer_vulkan.cpp +++ b/src/video_core/renderer_vulkan/renderer_vulkan.cpp @@ -143,7 +143,10 @@ void RendererVulkan::SwapBuffers(const Tegra::FramebufferConfig* framebuffer) { scheduler.WaitWorker(); - swapchain.AcquireNextImage(); + while (!swapchain.AcquireNextImage()) { + swapchain.Create(layout.width, layout.height, is_srgb); + blit_screen.Recreate(); + } const VkSemaphore render_semaphore = blit_screen.Draw(*framebuffer, use_accelerated); scheduler.Flush(render_semaphore); |
