diff options
author | liamwhite <liamwhite@users.noreply.github.com> | 2023-06-27 17:21:47 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-06-27 17:21:47 +0200 |
commit | 2b3bfafb9e7039bdd8d1f1d6b8051e6fbb33428f (patch) | |
tree | 3934b5872fc341738f0573e4bccb328bdee26c86 /src/video_core | |
parent | Merge pull request #10473 from GPUCode/vma (diff) | |
parent | Use safe reads in DMA engine (diff) | |
download | yuzu-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.cpp | 11 |
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); } |