summaryrefslogtreecommitdiff
path: root/src/video_core/dma_pusher.cpp
diff options
context:
space:
mode:
authorGravatar Ameer J2021-07-10 16:06:19 -0400
committerGravatar GitHub2021-07-10 16:06:19 -0400
commit907b2324d3a570ff726fe064ba425924d6dc0426 (patch)
tree1b3a16691ab5835900a5eee0a05a871b6b774a71 /src/video_core/dma_pusher.cpp
parentMerge pull request #6573 from lat9nq/cpu-settings-cleanup-2 (diff)
parentBuffer Cache: Address Feedback. (diff)
downloadyuzu-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/dma_pusher.cpp')
-rw-r--r--src/video_core/dma_pusher.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/video_core/dma_pusher.cpp b/src/video_core/dma_pusher.cpp
index 8b33c04ab..8d28bd884 100644
--- a/src/video_core/dma_pusher.cpp
+++ b/src/video_core/dma_pusher.cpp
@@ -4,6 +4,7 @@
4 4
5#include "common/cityhash.h" 5#include "common/cityhash.h"
6#include "common/microprofile.h" 6#include "common/microprofile.h"
7#include "common/settings.h"
7#include "core/core.h" 8#include "core/core.h"
8#include "core/memory.h" 9#include "core/memory.h"
9#include "video_core/dma_pusher.h" 10#include "video_core/dma_pusher.h"
@@ -76,8 +77,13 @@ bool DmaPusher::Step() {
76 77
77 // Push buffer non-empty, read a word 78 // Push buffer non-empty, read a word
78 command_headers.resize(command_list_header.size); 79 command_headers.resize(command_list_header.size);
79 gpu.MemoryManager().ReadBlockUnsafe(dma_get, command_headers.data(), 80 if (Settings::IsGPULevelHigh()) {
80 command_list_header.size * sizeof(u32)); 81 gpu.MemoryManager().ReadBlock(dma_get, command_headers.data(),
82 command_list_header.size * sizeof(u32));
83 } else {
84 gpu.MemoryManager().ReadBlockUnsafe(dma_get, command_headers.data(),
85 command_list_header.size * sizeof(u32));
86 }
81 } 87 }
82 for (std::size_t index = 0; index < command_headers.size();) { 88 for (std::size_t index = 0; index < command_headers.size();) {
83 const CommandHeader& command_header = command_headers[index]; 89 const CommandHeader& command_header = command_headers[index];