summaryrefslogtreecommitdiffstats
path: root/servers/rendering/rendering_device.cpp
diff options
context:
space:
mode:
authorBastiaan Olij <mux213@gmail.com>2023-10-31 21:56:23 +1100
committerBastiaan Olij <mux213@gmail.com>2024-01-08 21:51:04 +1100
commitd6caa69e116c2b631a177448c4e15e9689c19a82 (patch)
tree07b7266fdc25a9f9850e7e67cb7e8b5bc2580feb /servers/rendering/rendering_device.cpp
parentc8c483cf57a768110fce57e509f9b855e69d34b7 (diff)
downloadredot-engine-d6caa69e116c2b631a177448c4e15e9689c19a82.tar.gz
Skip swapchain logic if there is nothing to present (Android OpenXR)
Diffstat (limited to 'servers/rendering/rendering_device.cpp')
-rw-r--r--servers/rendering/rendering_device.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/servers/rendering/rendering_device.cpp b/servers/rendering/rendering_device.cpp
index 30bf47a096..9e7c32094b 100644
--- a/servers/rendering/rendering_device.cpp
+++ b/servers/rendering/rendering_device.cpp
@@ -5467,9 +5467,13 @@ void RenderingDevice::swap_buffers() {
context->postpare_buffers(frames[frame].draw_command_buffer);
_finalize_command_bufers();
- screen_prepared = false;
// Swap buffers.
- context->swap_buffers();
+ if (!screen_prepared) {
+ context->flush(true, true, false);
+ } else {
+ screen_prepared = false;
+ context->swap_buffers();
+ }
frame = (frame + 1) % frame_count;