summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/video_core/renderer_vulkan/vk_master_semaphore.h6
-rw-r--r--src/video_core/renderer_vulkan/vk_scheduler.cpp4
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 ee3cd35d0..4f8688118 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:
39 return KnownGpuTick() >= tick; 39 return KnownGpuTick() >= tick;
40 } 40 }
41 41
42 /// Advance to the logical tick. 42 /// Advance to the logical tick and return the old one
43 void NextTick() noexcept { 43 [[nodiscard]] u64 NextTick() noexcept {
44 ++current_tick; 44 return current_tick.fetch_add(1, std::memory_order::relaxed);
45 } 45 }
46 46
47 /// Refresh the known GPU tick 47 /// 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 81cb330d9..fcb6a5911 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) {
168 EndPendingOperations(); 168 EndPendingOperations();
169 InvalidateState(); 169 InvalidateState();
170 170
171 const u64 signal_value = master_semaphore->CurrentTick(); 171 const u64 signal_value = master_semaphore->NextTick();
172 master_semaphore->NextTick();
173
174 Record([semaphore, signal_value, this](vk::CommandBuffer cmdbuf) { 172 Record([semaphore, signal_value, this](vk::CommandBuffer cmdbuf) {
175 cmdbuf.End(); 173 cmdbuf.End();
176 174