summaryrefslogtreecommitdiffstats
path: root/src/video_core
diff options
context:
space:
mode:
authorliamwhite <liamwhite@users.noreply.github.com>2023-06-27 17:21:47 +0200
committerGitHub <noreply@github.com>2023-06-27 17:21:47 +0200
commit2b3bfafb9e7039bdd8d1f1d6b8051e6fbb33428f (patch)
tree3934b5872fc341738f0573e4bccb328bdee26c86 /src/video_core
parentMerge pull request #10473 from GPUCode/vma (diff)
parentUse safe reads in DMA engine (diff)
downloadyuzu-2b3bfafb9e7039bdd8d1f1d6b8051e6fbb33428f.tar
yuzu-2b3bfafb9e7039bdd8d1f1d6b8051e6fbb33428f.tar.gz
yuzu-2b3bfafb9e7039bdd8d1f1d6b8051e6fbb33428f.tar.bz2
yuzu-2b3bfafb9e7039bdd8d1f1d6b8051e6fbb33428f.tar.lz
yuzu-2b3bfafb9e7039bdd8d1f1d6b8051e6fbb33428f.tar.xz
yuzu-2b3bfafb9e7039bdd8d1f1d6b8051e6fbb33428f.tar.zst
yuzu-2b3bfafb9e7039bdd8d1f1d6b8051e6fbb33428f.zip
Diffstat (limited to 'src/video_core')
-rw-r--r--src/video_core/engines/maxwell_dma.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/video_core/engines/maxwell_dma.cpp b/src/video_core/engines/maxwell_dma.cpp
index bc1eb41e7..a290d6ea7 100644
--- a/src/video_core/engines/maxwell_dma.cpp
+++ b/src/video_core/engines/maxwell_dma.cpp
@@ -130,7 +130,7 @@ void MaxwellDMA::Launch() {
UNIMPLEMENTED_IF(regs.offset_out % 16 != 0);
read_buffer.resize_destructive(16);
for (u32 offset = 0; offset < regs.line_length_in; offset += 16) {
- memory_manager.ReadBlockUnsafe(
+ memory_manager.ReadBlock(
convert_linear_2_blocklinear_addr(regs.offset_in + offset),
read_buffer.data(), read_buffer.size());
memory_manager.WriteBlockCached(regs.offset_out + offset, read_buffer.data(),
@@ -142,8 +142,8 @@ void MaxwellDMA::Launch() {
UNIMPLEMENTED_IF(regs.offset_out % 16 != 0);
read_buffer.resize_destructive(16);
for (u32 offset = 0; offset < regs.line_length_in; offset += 16) {
- memory_manager.ReadBlockUnsafe(regs.offset_in + offset, read_buffer.data(),
- read_buffer.size());
+ memory_manager.ReadBlock(regs.offset_in + offset, read_buffer.data(),
+ read_buffer.size());
memory_manager.WriteBlockCached(
convert_linear_2_blocklinear_addr(regs.offset_out + offset),
read_buffer.data(), read_buffer.size());
@@ -151,8 +151,9 @@ void MaxwellDMA::Launch() {
} else {
if (!accelerate.BufferCopy(regs.offset_in, regs.offset_out, regs.line_length_in)) {
read_buffer.resize_destructive(regs.line_length_in);
- memory_manager.ReadBlockUnsafe(regs.offset_in, read_buffer.data(),
- regs.line_length_in);
+ memory_manager.ReadBlock(regs.offset_in, read_buffer.data(),
+ regs.line_length_in,
+ VideoCommon::CacheType::NoBufferCache);
memory_manager.WriteBlockCached(regs.offset_out, read_buffer.data(),
regs.line_length_in);
}