From a9fad83971c0602fa04a1a891899d9bcb5faa3d1 Mon Sep 17 00:00:00 2001 From: kd-11 Date: Thu, 28 Mar 2024 00:15:27 +0300 Subject: [PATCH] rsx: Fix memory range invalidation --- rpcs3/Emu/RSX/RSXThread.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/rpcs3/Emu/RSX/RSXThread.cpp b/rpcs3/Emu/RSX/RSXThread.cpp index 564187c076..8f54e56fea 100644 --- a/rpcs3/Emu/RSX/RSXThread.cpp +++ b/rpcs3/Emu/RSX/RSXThread.cpp @@ -3532,15 +3532,18 @@ namespace rsx // NOTE: m_mtx_task lock must be acquired before calling this method void thread::handle_invalidated_memory_range() { + AUDIT(!m_mtx_task.is_free()); m_eng_interrupt_mask.clear(rsx::memory_config_interrupt); if (!m_invalidated_memory_range.valid()) + { return; + } if (is_stopped()) { + // We only need to commit host-resident memory to the guest in case of savestates or captures. on_invalidate_memory_range(m_invalidated_memory_range, rsx::invalidation_cause::read); - on_invalidate_memory_range(m_invalidated_memory_range, rsx::invalidation_cause::write); } on_invalidate_memory_range(m_invalidated_memory_range, rsx::invalidation_cause::unmap);