From 88aee00a023ed09911b011d9594b85b6a45181c9 Mon Sep 17 00:00:00 2001 From: Stenzek Date: Tue, 26 Dec 2023 13:48:39 +1000 Subject: [PATCH] GS/Vulkan: Disable threaded presentation when spin is enabled --- pcsx2/GS/Renderers/Vulkan/GSDeviceVK.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pcsx2/GS/Renderers/Vulkan/GSDeviceVK.cpp b/pcsx2/GS/Renderers/Vulkan/GSDeviceVK.cpp index 856037f137..47912c388b 100644 --- a/pcsx2/GS/Renderers/Vulkan/GSDeviceVK.cpp +++ b/pcsx2/GS/Renderers/Vulkan/GSDeviceVK.cpp @@ -1113,7 +1113,9 @@ void GSDeviceVK::SubmitCommandBuffer( if (spin_enabled && m_optional_extensions.vk_ext_calibrated_timestamps) resources.submit_timestamp = GetCPUTimestamp(); - if (!submit_on_thread || !m_present_thread.joinable()) + // Don't use threaded presentation when spinning is enabled. ScanForCommandBufferCompletion() + // calls vkGetFenceStatus(), which reads a fence that has been passed off to the thread. + if (!submit_on_thread || GSConfig.HWSpinGPUForReadbacks || !m_present_thread.joinable()) { DoSubmitCommandBuffer(m_current_frame, present_swap_chain, spin_cycles); if (present_swap_chain)