VideoBackends:Vulkan: Synchronize presentation

Synchronize with the submission thread
if the last present is not done yet.
This commit is contained in:
Robin Kertels
2022-11-07 02:20:22 +01:00
parent c931529e7a
commit 3beb22ed7f
3 changed files with 6 additions and 0 deletions

View File

@ -83,6 +83,7 @@ public:
// Was the last present submitted to the queue a failure? If so, we must recreate our swapchain.
bool CheckLastPresentFail() { return m_last_present_failed.TestAndClear(); }
VkResult GetLastPresentResult() const { return m_last_present_result; }
bool CheckLastPresentDone() { return m_last_present_done.TestAndClear(); }
// Schedule a vulkan resource for destruction later on. This will occur when the command buffer
// is next re-used, and the GPU has finished working with the specified resource.
@ -159,6 +160,7 @@ private:
std::condition_variable m_submit_worker_condvar;
bool m_submit_worker_idle = true;
Common::Flag m_last_present_failed;
Common::Flag m_last_present_done;
VkResult m_last_present_result = VK_SUCCESS;
bool m_use_threaded_submission = false;
u32 m_descriptor_set_count = DESCRIPTOR_SETS_PER_POOL;