summaryrefslogtreecommitdiffstats
path: root/servers/rendering/rendering_device.cpp
diff options
context:
space:
mode:
authorHugo Locurcio <hugo.locurcio@hugo.pro>2024-07-09 17:10:25 +0200
committerHugo Locurcio <hugo.locurcio@hugo.pro>2024-07-09 17:12:54 +0200
commitcf2d2e2dd84e52ba4f7d687932e8195e08264b1d (patch)
treee4bd7f3e72b2b37a41ccc87c0b0e4bad9de8f70d /servers/rendering/rendering_device.cpp
parent26d1577f3985363faab48a65e9a0d9eed0e26d86 (diff)
downloadredot-engine-cf2d2e2dd84e52ba4f7d687932e8195e08264b1d.tar.gz
Silence Vulkan "Unable to acquire framebuffer." swapchain error
This error is harmless and can be safely ignored.
Diffstat (limited to 'servers/rendering/rendering_device.cpp')
-rw-r--r--servers/rendering/rendering_device.cpp7
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;