GS/Vulkan: Disable threaded presentation when spin is enabled

This commit is contained in:
Stenzek 2023-12-26 13:48:39 +10:00 committed by Connor McLaughlin
parent 2fa806bbee
commit 88aee00a02
1 changed files with 3 additions and 1 deletions

View File

@ -1113,7 +1113,9 @@ void GSDeviceVK::SubmitCommandBuffer(
if (spin_enabled && m_optional_extensions.vk_ext_calibrated_timestamps) if (spin_enabled && m_optional_extensions.vk_ext_calibrated_timestamps)
resources.submit_timestamp = GetCPUTimestamp(); 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); DoSubmitCommandBuffer(m_current_frame, present_swap_chain, spin_cycles);
if (present_swap_chain) if (present_swap_chain)