diff options
| author | 2020-02-19 13:40:37 -0400 | |
|---|---|---|
| committer | 2020-04-22 11:36:16 -0400 | |
| commit | b7bc3c25496849661846f2fe42f591f2a81fbc87 (patch) | |
| tree | 5c65f286d0ac58dfd46a42325a71548f20522f71 /src/video_core/renderer_vulkan | |
| parent | BufferCache: Refactor async managing. (diff) | |
| download | yuzu-b7bc3c25496849661846f2fe42f591f2a81fbc87.tar.gz yuzu-b7bc3c25496849661846f2fe42f591f2a81fbc87.tar.xz yuzu-b7bc3c25496849661846f2fe42f591f2a81fbc87.zip | |
FenceManager: Manage syncpoints and rename fences to semaphores.
Diffstat (limited to 'src/video_core/renderer_vulkan')
| -rw-r--r-- | src/video_core/renderer_vulkan/vk_rasterizer.cpp | 16 | ||||
| -rw-r--r-- | src/video_core/renderer_vulkan/vk_rasterizer.h | 3 |
2 files changed, 16 insertions, 3 deletions
diff --git a/src/video_core/renderer_vulkan/vk_rasterizer.cpp b/src/video_core/renderer_vulkan/vk_rasterizer.cpp index 1d75a4766..507262c8f 100644 --- a/src/video_core/renderer_vulkan/vk_rasterizer.cpp +++ b/src/video_core/renderer_vulkan/vk_rasterizer.cpp | |||
| @@ -543,7 +543,7 @@ void RasterizerVulkan::SyncGuestHost() { | |||
| 543 | buffer_cache.SyncGuestHost(); | 543 | buffer_cache.SyncGuestHost(); |
| 544 | } | 544 | } |
| 545 | 545 | ||
| 546 | void RasterizerVulkan::SignalFence(GPUVAddr addr, u32 value) { | 546 | void RasterizerVulkan::SignalSemaphore(GPUVAddr addr, u32 value) { |
| 547 | auto& gpu{system.GPU()}; | 547 | auto& gpu{system.GPU()}; |
| 548 | auto& memory_manager{gpu.MemoryManager()}; | 548 | auto& memory_manager{gpu.MemoryManager()}; |
| 549 | memory_manager.Write<u32>(addr, value); | 549 | memory_manager.Write<u32>(addr, value); |
| @@ -553,7 +553,19 @@ void RasterizerVulkan::SignalFence(GPUVAddr addr, u32 value) { | |||
| 553 | memory_manager.Write<u32>(addr, value); | 553 | memory_manager.Write<u32>(addr, value); |
| 554 | return; | 554 | return; |
| 555 | } | 555 | } |
| 556 | fence_manager.SignalFence(addr, value); | 556 | fence_manager.SignalSemaphore(addr, value); |
| 557 | */ | ||
| 558 | } | ||
| 559 | |||
| 560 | void RasterizerVulkan::SignalSyncPoint(u32 value) { | ||
| 561 | auto& gpu{system.GPU()}; | ||
| 562 | gpu.IncrementSyncPoint(value); | ||
| 563 | /* | ||
| 564 | if (!gpu.IsAsync()) { | ||
| 565 | gpu.IncrementSyncPoint(value); | ||
| 566 | return; | ||
| 567 | } | ||
| 568 | fence_manager.SignalSyncPoint(value); | ||
| 557 | */ | 569 | */ |
| 558 | } | 570 | } |
| 559 | 571 | ||
diff --git a/src/video_core/renderer_vulkan/vk_rasterizer.h b/src/video_core/renderer_vulkan/vk_rasterizer.h index 08a9af401..145bdf899 100644 --- a/src/video_core/renderer_vulkan/vk_rasterizer.h +++ b/src/video_core/renderer_vulkan/vk_rasterizer.h | |||
| @@ -122,7 +122,8 @@ public: | |||
| 122 | void InvalidateRegion(VAddr addr, u64 size) override; | 122 | void InvalidateRegion(VAddr addr, u64 size) override; |
| 123 | void OnCPUWrite(VAddr addr, u64 size) override; | 123 | void OnCPUWrite(VAddr addr, u64 size) override; |
| 124 | void SyncGuestHost() override; | 124 | void SyncGuestHost() override; |
| 125 | void SignalFence(GPUVAddr addr, u32 value) override; | 125 | void SignalSemaphore(GPUVAddr addr, u32 value) override; |
| 126 | void SignalSyncPoint(u32 value) override; | ||
| 126 | void ReleaseFences() override; | 127 | void ReleaseFences() override; |
| 127 | void FlushAndInvalidateRegion(VAddr addr, u64 size) override; | 128 | void FlushAndInvalidateRegion(VAddr addr, u64 size) override; |
| 128 | void FlushCommands() override; | 129 | void FlushCommands() override; |