summaryrefslogtreecommitdiffstats
path: root/servers/rendering/rendering_device.cpp
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2024-01-08 14:52:07 +0100
committerRémi Verschelde <rverschelde@gmail.com>2024-01-08 14:52:07 +0100
commit25011e9144d8db7987f6ec69dd450a7d34da9f4e (patch)
tree55a1ca474ee959ad435733df910f2d1d4ac4e825 /servers/rendering/rendering_device.cpp
parent129332e3b99eb8249da6ce7e52d676dd7f2a5c5a (diff)
parentd6caa69e116c2b631a177448c4e15e9689c19a82 (diff)
downloadredot-engine-25011e9144d8db7987f6ec69dd450a7d34da9f4e.tar.gz
Merge pull request #84244 from BastiaanOlij/skip_present_if_needed
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;