rsx: Fix memory range invalidation

This commit is contained in:
kd-11 2024-03-28 00:15:27 +03:00 committed by Megamouse
parent 1550dc7f1f
commit a9fad83971

View file

@ -3532,15 +3532,18 @@ namespace rsx
// NOTE: m_mtx_task lock must be acquired before calling this method // NOTE: m_mtx_task lock must be acquired before calling this method
void thread::handle_invalidated_memory_range() void thread::handle_invalidated_memory_range()
{ {
AUDIT(!m_mtx_task.is_free());
m_eng_interrupt_mask.clear(rsx::memory_config_interrupt); m_eng_interrupt_mask.clear(rsx::memory_config_interrupt);
if (!m_invalidated_memory_range.valid()) if (!m_invalidated_memory_range.valid())
{
return; return;
}
if (is_stopped()) 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::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); on_invalidate_memory_range(m_invalidated_memory_range, rsx::invalidation_cause::unmap);