From a6d1fe07f2b4c2b596f586ccb875bf5ae68b7780 Mon Sep 17 00:00:00 2001 From: Philip Rebohle Date: Thu, 21 Feb 2019 16:25:10 +0100 Subject: [PATCH] [vulkan] Add helper method to wait for presenter fence --- src/vulkan/vulkan_presenter.cpp | 9 +++++++++ src/vulkan/vulkan_presenter.h | 11 +++++++++++ 2 files changed, 20 insertions(+) diff --git a/src/vulkan/vulkan_presenter.cpp b/src/vulkan/vulkan_presenter.cpp index f4cfa5222..3f2694d9e 100644 --- a/src/vulkan/vulkan_presenter.cpp +++ b/src/vulkan/vulkan_presenter.cpp @@ -66,6 +66,15 @@ namespace dxvk::vk { return status; } + + VkResult Presenter::waitForFence(VkFence fence) { + // Ignore timeouts, we don't want to block the + // app indefinitely if something goes wrong + return m_vkd->vkWaitForFences( + m_vkd->device(), 1, &fence, VK_FALSE, + 1'000'000'000ull); + } + VkResult Presenter::presentImage(VkSemaphore wait) { VkPresentInfoKHR info; diff --git a/src/vulkan/vulkan_presenter.h b/src/vulkan/vulkan_presenter.h index 07138079b..2e16a4414 100644 --- a/src/vulkan/vulkan_presenter.h +++ b/src/vulkan/vulkan_presenter.h @@ -132,6 +132,17 @@ namespace dxvk::vk { VkFence fence, uint32_t& index); + /** + * \brief Waits for fence to get signaled + * + * Helper method that can be used in conjunction + * with the fence passed to \ref acquireNextImage. + * \param [in] fence Fence to wait on + * \returns Status of the operation + */ + VkResult waitForFence( + VkFence fence); + /** * \brief Presents current image *