diff options
| author | 2020-02-16 09:51:37 -0400 | |
|---|---|---|
| committer | 2020-04-22 11:36:06 -0400 | |
| commit | da8f17715dbdc7eec92f5f0c11c968a51b86cab4 (patch) | |
| tree | a1604f3cf9abe9128d26834f9c68161ecab6e204 /src/video_core/gpu_thread.cpp | |
| parent | Texture Cache: Implement OnCPUWrite and SyncGuestHost (diff) | |
| download | yuzu-da8f17715dbdc7eec92f5f0c11c968a51b86cab4.tar.gz yuzu-da8f17715dbdc7eec92f5f0c11c968a51b86cab4.tar.xz yuzu-da8f17715dbdc7eec92f5f0c11c968a51b86cab4.zip | |
GPU: Refactor synchronization on Async GPU
Diffstat (limited to 'src/video_core/gpu_thread.cpp')
| -rw-r--r-- | src/video_core/gpu_thread.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/video_core/gpu_thread.cpp b/src/video_core/gpu_thread.cpp index 10cda686b..1994d3bb4 100644 --- a/src/video_core/gpu_thread.cpp +++ b/src/video_core/gpu_thread.cpp | |||
| @@ -40,7 +40,7 @@ static void RunThread(VideoCore::RendererBase& renderer, Core::Frontend::Graphic | |||
| 40 | } else if (const auto data = std::get_if<FlushRegionCommand>(&next.data)) { | 40 | } else if (const auto data = std::get_if<FlushRegionCommand>(&next.data)) { |
| 41 | renderer.Rasterizer().FlushRegion(data->addr, data->size); | 41 | renderer.Rasterizer().FlushRegion(data->addr, data->size); |
| 42 | } else if (const auto data = std::get_if<InvalidateRegionCommand>(&next.data)) { | 42 | } else if (const auto data = std::get_if<InvalidateRegionCommand>(&next.data)) { |
| 43 | renderer.Rasterizer().InvalidateRegion(data->addr, data->size); | 43 | renderer.Rasterizer().OnCPUWrite(data->addr, data->size); |
| 44 | } else if (std::holds_alternative<EndProcessingCommand>(next.data)) { | 44 | } else if (std::holds_alternative<EndProcessingCommand>(next.data)) { |
| 45 | return; | 45 | return; |
| 46 | } else { | 46 | } else { |
| @@ -82,12 +82,12 @@ void ThreadManager::FlushRegion(VAddr addr, u64 size) { | |||
| 82 | } | 82 | } |
| 83 | 83 | ||
| 84 | void ThreadManager::InvalidateRegion(VAddr addr, u64 size) { | 84 | void ThreadManager::InvalidateRegion(VAddr addr, u64 size) { |
| 85 | system.Renderer().Rasterizer().InvalidateRegion(addr, size); | 85 | system.Renderer().Rasterizer().OnCPUWrite(addr, size); |
| 86 | } | 86 | } |
| 87 | 87 | ||
| 88 | void ThreadManager::FlushAndInvalidateRegion(VAddr addr, u64 size) { | 88 | void ThreadManager::FlushAndInvalidateRegion(VAddr addr, u64 size) { |
| 89 | // Skip flush on asynch mode, as FlushAndInvalidateRegion is not used for anything too important | 89 | // Skip flush on asynch mode, as FlushAndInvalidateRegion is not used for anything too important |
| 90 | InvalidateRegion(addr, size); | 90 | system.Renderer().Rasterizer().OnCPUWrite(addr, size); |
| 91 | } | 91 | } |
| 92 | 92 | ||
| 93 | void ThreadManager::WaitIdle() const { | 93 | void ThreadManager::WaitIdle() const { |