diff options
| author | 2022-11-18 00:21:13 +0100 | |
|---|---|---|
| committer | 2023-01-01 16:43:57 -0500 | |
| commit | ce448ce770b6c329caec7ad1ae00e01dddb67b03 (patch) | |
| tree | 88a76a0416244c89d1031551b1a419a606324004 /src/video_core/dma_pusher.cpp | |
| parent | MacroHLE: Reduce massive calculations on sizing estimation. (diff) | |
| download | yuzu-ce448ce770b6c329caec7ad1ae00e01dddb67b03.tar.gz yuzu-ce448ce770b6c329caec7ad1ae00e01dddb67b03.tar.xz yuzu-ce448ce770b6c329caec7ad1ae00e01dddb67b03.zip | |
Revert Buffer cache changes and setup additional macros.
Diffstat (limited to 'src/video_core/dma_pusher.cpp')
| -rw-r--r-- | src/video_core/dma_pusher.cpp | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/video_core/dma_pusher.cpp b/src/video_core/dma_pusher.cpp index 7a82355da..b3e9cb82e 100644 --- a/src/video_core/dma_pusher.cpp +++ b/src/video_core/dma_pusher.cpp | |||
| @@ -77,11 +77,20 @@ bool DmaPusher::Step() { | |||
| 77 | command_headers.resize_destructive(command_list_header.size); | 77 | command_headers.resize_destructive(command_list_header.size); |
| 78 | constexpr u32 MacroRegistersStart = 0xE00; | 78 | constexpr u32 MacroRegistersStart = 0xE00; |
| 79 | if (dma_state.method < MacroRegistersStart) { | 79 | if (dma_state.method < MacroRegistersStart) { |
| 80 | memory_manager.ReadBlock(dma_state.dma_get, command_headers.data(), | 80 | if (Settings::IsGPULevelHigh()) { |
| 81 | command_list_header.size * sizeof(u32)); | 81 | memory_manager.ReadBlock(dma_state.dma_get, command_headers.data(), |
| 82 | command_list_header.size * sizeof(u32)); | ||
| 83 | } else { | ||
| 84 | memory_manager.ReadBlockUnsafe(dma_state.dma_get, command_headers.data(), | ||
| 85 | command_list_header.size * sizeof(u32)); | ||
| 86 | } | ||
| 82 | } else { | 87 | } else { |
| 83 | memory_manager.ReadBlockUnsafe(dma_state.dma_get, command_headers.data(), | 88 | const size_t copy_size = command_list_header.size * sizeof(u32); |
| 84 | command_list_header.size * sizeof(u32)); | 89 | if (subchannels[dma_state.subchannel]) { |
| 90 | subchannels[dma_state.subchannel]->current_dirty = | ||
| 91 | memory_manager.IsMemoryDirty(dma_state.dma_get, copy_size); | ||
| 92 | } | ||
| 93 | memory_manager.ReadBlockUnsafe(dma_state.dma_get, command_headers.data(), copy_size); | ||
| 85 | } | 94 | } |
| 86 | ProcessCommands(command_headers); | 95 | ProcessCommands(command_headers); |
| 87 | } | 96 | } |