From 5ec564b2dd81104ede0ade9e8b25b804e82842be Mon Sep 17 00:00:00 2001 From: Tobias Frisch <tfrisch@uni-koblenz.de> Date: Sun, 16 May 2021 19:43:21 +0200 Subject: [PATCH] Drop frames to avoid crash! Signed-off-by: Tobias Frisch <tfrisch@uni-koblenz.de> --- src/vkcv/Core.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/vkcv/Core.cpp b/src/vkcv/Core.cpp index 70f0425f..c91dbf71 100644 --- a/src/vkcv/Core.cpp +++ b/src/vkcv/Core.cpp @@ -324,8 +324,17 @@ namespace vkcv uint32_t swapchainImageIndex; m_Context.getDevice().acquireNextImageKHR(m_swapchain.getSwapchain(), 0, nullptr, m_SyncResources.swapchainImageAcquired, &swapchainImageIndex, {}); - const uint64_t timeoutPeriodNs = 1000; // TODO: think if is adequate - m_Context.getDevice().waitForFences(m_SyncResources.swapchainImageAcquired, true, timeoutPeriodNs); + const uint64_t timeoutPeriodNs = 100000; // TODO: think if is adequate + + + const auto& result = m_Context.getDevice().waitForFences(m_SyncResources.swapchainImageAcquired, true, timeoutPeriodNs); + + if (result == vk::Result::eTimeout) { + std::cerr << "Drop frame!" << std::endl; + m_CommandResources.commandBuffer.end(); + return; // TODO: image gets dropped... ooops + } + m_Context.getDevice().resetFences(m_SyncResources.swapchainImageAcquired); const auto swapchainImages = m_Context.getDevice().getSwapchainImagesKHR(m_swapchain.getSwapchain()); -- GitLab