aboutsummaryrefslogtreecommitdiff
path: root/cube/cube.cpp
diff options
context:
space:
mode:
authorCharles Giessen <charles@lunarg.com>2025-04-10 15:59:30 -0500
committerCharles Giessen <46324611+charles-lunarg@users.noreply.github.com>2025-04-11 15:13:14 -0600
commit5d93833059364050429835b80809cdcc94633ed5 (patch)
tree4ac26ed9635b906e6029cd78402b4782a38c7d5f /cube/cube.cpp
parent5394fd5dd5edbd3d14e263b7883a40c2193ee296 (diff)
downloadusermoji-5d93833059364050429835b80809cdcc94633ed5.tar.xz
cubepp: Fix incremental present on swapchain recreate
Diffstat (limited to 'cube/cube.cpp')
-rw-r--r--cube/cube.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/cube/cube.cpp b/cube/cube.cpp
index 24f7b3f0..7301482f 100644
--- a/cube/cube.cpp
+++ b/cube/cube.cpp
@@ -500,6 +500,7 @@ struct Demo {
vk::PresentModeKHR presentMode = vk::PresentModeKHR::eFifo;
std::array<vk::Fence, FRAME_LAG> fences;
uint32_t frame_index = 0;
+ bool first_swapchain_frame;
vk::CommandPool cmd_pool;
vk::CommandPool present_cmd_pool;
@@ -880,6 +881,7 @@ void Demo::draw() {
auto present_result = present_queue.presentKHR(&presentInfo);
frame_index += 1;
frame_index %= FRAME_LAG;
+ first_swapchain_frame = false;
if (present_result == vk::Result::eErrorOutOfDateKHR) {
// swapchain is out of date (e.g. the window was resized) and
// must be recreated:
@@ -2076,6 +2078,7 @@ void Demo::init_vk_swapchain() {
color_space = surfaceFormat.colorSpace;
quit = false;
+ first_swapchain_frame = true;
curFrame = 0;
// Create semaphores to synchronize acquiring presentable buffers before
@@ -2167,6 +2170,7 @@ void Demo::prepare() {
current_buffer = 0;
prepared = true;
+ first_swapchain_frame = true;
}
void Demo::prepare_buffers() {