From 7e9dbeff7b15e70ba82afa18a438a5931c432a64 Mon Sep 17 00:00:00 2001 From: kd-11 <15904127+kd-11@users.noreply.github.com> Date: Thu, 12 Mar 2020 22:29:58 +0300 Subject: [PATCH] vk: Fix MTRSX deadlock (#7766) --- rpcs3/Emu/RSX/VK/VKGSRender.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/rpcs3/Emu/RSX/VK/VKGSRender.cpp b/rpcs3/Emu/RSX/VK/VKGSRender.cpp index dd396f537e..dbe606e0fe 100644 --- a/rpcs3/Emu/RSX/VK/VKGSRender.cpp +++ b/rpcs3/Emu/RSX/VK/VKGSRender.cpp @@ -2273,6 +2273,10 @@ void VKGSRender::do_local_task(rsx::FIFO_state state) // NOTE: This may cause graphics corruption due to unsynchronized modification on_invalidate_memory_range(m_offloader_fault_range, m_offloader_fault_cause); m_queue_status.clear(flush_queue_state::deadlock); + + // Abort all other operations, this is likely coming from offloader::sync() and we need to unwind the call stack. + // If flush_command_queue is executed at this point, recursion will cause a deadlock to occur. + return; } if (m_flush_requests.pending())