Explorar o código

DMA Pusher: Fix regression caused by guest memory optimizations

Fernando Sahmkow %!s(int64=2) %!d(string=hai) anos
pai
achega
8beda6a2bf
Modificáronse 1 ficheiros con 8 adicións e 0 borrados
  1. 8 0
      src/video_core/dma_pusher.cpp

+ 8 - 0
src/video_core/dma_pusher.cpp

@@ -83,6 +83,14 @@ bool DmaPusher::Step() {
                     dma_state.dma_get, command_list_header.size * sizeof(u32));
             }
         }
+        if (Settings::IsGPULevelHigh() && dma_state.method < MacroRegistersStart) {
+            Core::Memory::GpuGuestMemory<Tegra::CommandHeader,
+                                         Core::Memory::GuestMemoryFlags::SafeRead>
+                headers(memory_manager, dma_state.dma_get, command_list_header.size,
+                        &command_headers);
+            ProcessCommands(headers);
+            return true;
+        }
         Core::Memory::GpuGuestMemory<Tegra::CommandHeader,
                                      Core::Memory::GuestMemoryFlags::UnsafeRead>
             headers(memory_manager, dma_state.dma_get, command_list_header.size, &command_headers);