diff options
author | ReinUsesLisp <reinuseslisp@airmail.cc> | 2021-05-07 00:29:08 -0300 |
---|---|---|
committer | ameerj <52414509+ameerj@users.noreply.github.com> | 2021-07-22 21:51:30 -0400 |
commit | a51503660435f1279ce0fa449f9cf76e74b45d74 (patch) | |
tree | 5dd6b0da51add0c51d09241553260d81a2a9689f /src | |
parent | b10cf64c486d8730fcfeb53a333814915b3b5fbe (diff) |
vk_master_semaphore: Use fetch_add to increase master semaphore tick
Diffstat (limited to 'src')
-rw-r--r-- | src/video_core/renderer_vulkan/vk_master_semaphore.h | 6 | ||||
-rw-r--r-- | src/video_core/renderer_vulkan/vk_scheduler.cpp | 4 |
2 files changed, 4 insertions, 6 deletions
diff --git a/src/video_core/renderer_vulkan/vk_master_semaphore.h b/src/video_core/renderer_vulkan/vk_master_semaphore.h index ee3cd35d09..4f86881183 100644 --- a/src/video_core/renderer_vulkan/vk_master_semaphore.h +++ b/src/video_core/renderer_vulkan/vk_master_semaphore.h @@ -39,9 +39,9 @@ public: return KnownGpuTick() >= tick; } - /// Advance to the logical tick. - void NextTick() noexcept { - ++current_tick; + /// Advance to the logical tick and return the old one + [[nodiscard]] u64 NextTick() noexcept { + return current_tick.fetch_add(1, std::memory_order::relaxed); } /// Refresh the known GPU tick diff --git a/src/video_core/renderer_vulkan/vk_scheduler.cpp b/src/video_core/renderer_vulkan/vk_scheduler.cpp index 81cb330d97..fcb6a59112 100644 --- a/src/video_core/renderer_vulkan/vk_scheduler.cpp +++ b/src/video_core/renderer_vulkan/vk_scheduler.cpp @@ -168,9 +168,7 @@ void VKScheduler::SubmitExecution(VkSemaphore semaphore) { EndPendingOperations(); InvalidateState(); - const u64 signal_value = master_semaphore->CurrentTick(); - master_semaphore->NextTick(); - + const u64 signal_value = master_semaphore->NextTick(); Record([semaphore, signal_value, this](vk::CommandBuffer cmdbuf) { cmdbuf.End(); |