diff options
| author | 2021-07-10 16:06:19 -0400 | |
|---|---|---|
| committer | 2021-07-10 16:06:19 -0400 | |
| commit | 907b2324d3a570ff726fe064ba425924d6dc0426 (patch) | |
| tree | 1b3a16691ab5835900a5eee0a05a871b6b774a71 /src/video_core/renderer_vulkan | |
| parent | Merge pull request #6573 from lat9nq/cpu-settings-cleanup-2 (diff) | |
| parent | Buffer Cache: Address Feedback. (diff) | |
| download | yuzu-907b2324d3a570ff726fe064ba425924d6dc0426.tar.gz yuzu-907b2324d3a570ff726fe064ba425924d6dc0426.tar.xz yuzu-907b2324d3a570ff726fe064ba425924d6dc0426.zip | |
Merge pull request #6557 from FernandoS27/staceys-mom-has-got-it-goin-on
Buffer Cache: Fix High downloads / Fence manager: Improve fence checking.
Diffstat (limited to 'src/video_core/renderer_vulkan')
| -rw-r--r-- | src/video_core/renderer_vulkan/vk_rasterizer.cpp | 8 | ||||
| -rw-r--r-- | src/video_core/renderer_vulkan/vk_rasterizer.h | 1 |
2 files changed, 9 insertions, 0 deletions
diff --git a/src/video_core/renderer_vulkan/vk_rasterizer.cpp b/src/video_core/renderer_vulkan/vk_rasterizer.cpp index bd4d649cc..9ea4b6653 100644 --- a/src/video_core/renderer_vulkan/vk_rasterizer.cpp +++ b/src/video_core/renderer_vulkan/vk_rasterizer.cpp | |||
| @@ -580,6 +580,13 @@ void RasterizerVulkan::SignalSyncPoint(u32 value) { | |||
| 580 | fence_manager.SignalSyncPoint(value); | 580 | fence_manager.SignalSyncPoint(value); |
| 581 | } | 581 | } |
| 582 | 582 | ||
| 583 | void RasterizerVulkan::SignalReference() { | ||
| 584 | if (!gpu.IsAsync()) { | ||
| 585 | return; | ||
| 586 | } | ||
| 587 | fence_manager.SignalOrdering(); | ||
| 588 | } | ||
| 589 | |||
| 583 | void RasterizerVulkan::ReleaseFences() { | 590 | void RasterizerVulkan::ReleaseFences() { |
| 584 | if (!gpu.IsAsync()) { | 591 | if (!gpu.IsAsync()) { |
| 585 | return; | 592 | return; |
| @@ -612,6 +619,7 @@ void RasterizerVulkan::WaitForIdle() { | |||
| 612 | cmdbuf.SetEvent(event, flags); | 619 | cmdbuf.SetEvent(event, flags); |
| 613 | cmdbuf.WaitEvents(event, flags, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, {}, {}, {}); | 620 | cmdbuf.WaitEvents(event, flags, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, {}, {}, {}); |
| 614 | }); | 621 | }); |
| 622 | SignalReference(); | ||
| 615 | } | 623 | } |
| 616 | 624 | ||
| 617 | void RasterizerVulkan::FragmentBarrier() { | 625 | void RasterizerVulkan::FragmentBarrier() { |
diff --git a/src/video_core/renderer_vulkan/vk_rasterizer.h b/src/video_core/renderer_vulkan/vk_rasterizer.h index 41459c5c5..5450ccfb5 100644 --- a/src/video_core/renderer_vulkan/vk_rasterizer.h +++ b/src/video_core/renderer_vulkan/vk_rasterizer.h | |||
| @@ -75,6 +75,7 @@ public: | |||
| 75 | void ModifyGPUMemory(GPUVAddr addr, u64 size) override; | 75 | void ModifyGPUMemory(GPUVAddr addr, u64 size) override; |
| 76 | void SignalSemaphore(GPUVAddr addr, u32 value) override; | 76 | void SignalSemaphore(GPUVAddr addr, u32 value) override; |
| 77 | void SignalSyncPoint(u32 value) override; | 77 | void SignalSyncPoint(u32 value) override; |
| 78 | void SignalReference() override; | ||
| 78 | void ReleaseFences() override; | 79 | void ReleaseFences() override; |
| 79 | void FlushAndInvalidateRegion(VAddr addr, u64 size) override; | 80 | void FlushAndInvalidateRegion(VAddr addr, u64 size) override; |
| 80 | void WaitForIdle() override; | 81 | void WaitForIdle() override; |