From 7ebabddfe0a5d7d4c65a55efc57aa8b5823c2033 Mon Sep 17 00:00:00 2001 From: kd-11 Date: Thu, 29 Jun 2023 01:27:28 +0300 Subject: [PATCH] vk: Fix GPU hang --- rpcs3/Emu/RSX/VK/vkutils/sync.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/rpcs3/Emu/RSX/VK/vkutils/sync.cpp b/rpcs3/Emu/RSX/VK/vkutils/sync.cpp index 0e300b3fd1..ce75784dbe 100644 --- a/rpcs3/Emu/RSX/VK/vkutils/sync.cpp +++ b/rpcs3/Emu/RSX/VK/vkutils/sync.cpp @@ -340,18 +340,23 @@ namespace vk void event::reset() const { - if (m_backend == sync_backend::gpu_label) + if (m_backend != sync_backend::gpu_label) [[ likely ]] { - m_label->reset(); + vkResetEvent(*m_device, m_vk_event); return; } - vkResetEvent(*m_device, m_vk_event); + m_label->reset(); } VkResult event::status() const { - return vkGetEventStatus(*m_device, m_vk_event); + if (m_backend != sync_backend::gpu_label) [[ likely ]] + { + return vkGetEventStatus(*m_device, m_vk_event); + } + + return m_label->signaled() ? VK_EVENT_SET : VK_EVENT_RESET; } gpu_label_pool::gpu_label_pool(const vk::render_device& dev, u32 count)