diff --git a/src/video_core/dma_pusher.cpp b/src/video_core/dma_pusher.cpp index 8e4ca6acd5..159011039d 100644 --- a/src/video_core/dma_pusher.cpp +++ b/src/video_core/dma_pusher.cpp @@ -85,6 +85,7 @@ bool DmaPusher::Step() { dma_state.dma_get, command_list_header.size * sizeof(u32)); } } + const auto safe_process = [&] { Tegra::Memory::GpuGuestMemory @@ -92,6 +93,7 @@ bool DmaPusher::Step() { &command_headers); ProcessCommands(headers); }; + const auto unsafe_process = [&] { Tegra::Memory::GpuGuestMemory @@ -99,7 +101,10 @@ bool DmaPusher::Step() { &command_headers); ProcessCommands(headers); }; - if (Settings::IsGPULevelHigh()) { + + if (Settings::IsGPULevelExtreme()) { + safe_process(); + } else if (Settings::IsGPULevelHigh()) { if (dma_state.method >= MacroRegistersStart) { unsafe_process(); } else {