diff options
| author | Takoroka <137927095+Takoroka@users.noreply.github.com> | 2026-10-30 13:48:24 -0400 |
|---|---|---|
| committer | Takoroka <137927095+Takoroka@users.noreply.github.com> | 2026-10-30 13:48:24 -0400 |
| commit | 01effa81ab0e151f8cfd674bf4da952d24645943 (patch) | |
| tree | df3037540d582c4119acef689d4531976cac7f32 /src/video_core/dma_pusher.cpp | |
| parent | dfe734dce6aed88038d2fd8f54b06c6b0304cf36 (diff) | |
| parent | ea33ad1865970ee731e5f74dbcc26ca472798afe (diff) | |
Merge branch 'nx2' into nx2-experimental
# Conflicts:
# src/video_core/nx2.h
# src/video_core/renderer_vulkan/vk_texture_cache.cpp
# src/video_core/texture_cache/texture_cache.h
Diffstat (limited to 'src/video_core/dma_pusher.cpp')
| -rw-r--r-- | src/video_core/dma_pusher.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/video_core/dma_pusher.cpp b/src/video_core/dma_pusher.cpp index 62f7e6bfdb..88d571ae5f 100644 --- a/src/video_core/dma_pusher.cpp +++ b/src/video_core/dma_pusher.cpp @@ -151,7 +151,10 @@ bool DmaPusher::Step() { } } // A resumed entry is read again: the words after the acquire may be new by now. - const bool use_safe = Settings::IsDMALevelDefault() ? Settings::IsGPULevelHigh() : Settings::IsDMALevelSafe(); + // A safe read flushes the caches, which belong to the split's back thread while it runs + // (the split only starts with unsafe reads; the settings can change mid-game). + const bool use_safe = !VideoCommon::GpuSplit::Get().Active() && + (Settings::IsDMALevelDefault() ? Settings::IsGPULevelHigh() : Settings::IsDMALevelSafe()); if (use_safe) { Tegra::Memory::GpuGuestMemory<Tegra::CommandHeader, Tegra::Memory::GuestMemoryFlags::SafeRead>headers(memory_manager, dma_state.dma_get, header.size, &command_headers); const std::span<const CommandHeader> commands{headers.data(), headers.size()}; |
