diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2024-07-11 00:27:36 +0200 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2024-07-11 00:27:36 +0200 |
commit | f5bb5db8ae3753526f42a1b0a78a4ed4de5244f5 (patch) | |
tree | d61e2aa9f6eb7b329f3b3f2f774837dfd6fa2f56 | |
parent | 34d4c9197dfc56555ef7da0f3420cf736680c92d (diff) | |
parent | cf2d2e2dd84e52ba4f7d687932e8195e08264b1d (diff) | |
download | redot-engine-f5bb5db8ae3753526f42a1b0a78a4ed4de5244f5.tar.gz |
Merge pull request #94135 from Calinou/vulkan-swapchain-resize-error-fail-silently
Silence Vulkan "Unable to acquire framebuffer." swapchain error
-rw-r--r-- | servers/rendering/rendering_device.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/servers/rendering/rendering_device.cpp b/servers/rendering/rendering_device.cpp index 801ad1b825..c65d3bec95 100644 --- a/servers/rendering/rendering_device.cpp +++ b/servers/rendering/rendering_device.cpp @@ -3500,7 +3500,12 @@ Error RenderingDevice::screen_prepare_for_drawing(DisplayServer::WindowID p_scre framebuffer = driver->swap_chain_acquire_framebuffer(main_queue, it->value, resize_required); } - ERR_FAIL_COND_V_MSG(framebuffer.id == 0, FAILED, "Unable to acquire framebuffer."); + if (framebuffer.id == 0) { + // Some drivers like NVIDIA are fast enough to invalidate the swap chain between resizing and acquisition (GH-94104). + // This typically occurs during continuous window resizing operations, especially if done quickly. + // Allow this to fail silently since it has no visual consequences. + return ERR_CANT_CREATE; + } // Store the framebuffer that will be used next to draw to this screen. screen_framebuffers[p_screen] = framebuffer; |