diff options
| author | 2021-05-07 00:29:08 -0300 | |
|---|---|---|
| committer | 2021-07-22 21:51:30 -0400 | |
| commit | a51503660435f1279ce0fa449f9cf76e74b45d74 (patch) | |
| tree | 5dd6b0da51add0c51d09241553260d81a2a9689f /src | |
| parent | glasm: Add GLASM backend infrastructure (diff) | |
| download | yuzu-a51503660435f1279ce0fa449f9cf76e74b45d74.tar.gz yuzu-a51503660435f1279ce0fa449f9cf76e74b45d74.tar.xz yuzu-a51503660435f1279ce0fa449f9cf76e74b45d74.zip | |
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 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 | ||