From 56c47951c5d92d5e6145060469528301c67e0754 Mon Sep 17 00:00:00 2001
From: ReinUsesLisp <reinuseslisp@airmail.cc>
Date: Fri, 7 May 2021 00:29:37 -0300
Subject: [PATCH] vk_query_cache: Wait before reading queries

---
 src/video_core/renderer_vulkan/vk_query_cache.cpp | 11 ++---------
 1 file changed, 2 insertions(+), 9 deletions(-)

diff --git a/src/video_core/renderer_vulkan/vk_query_cache.cpp b/src/video_core/renderer_vulkan/vk_query_cache.cpp
index 1dd78328c..c9cb32d71 100644
--- a/src/video_core/renderer_vulkan/vk_query_cache.cpp
+++ b/src/video_core/renderer_vulkan/vk_query_cache.cpp
@@ -114,17 +114,10 @@ void HostCounter::EndQuery() {
 }
 
 u64 HostCounter::BlockingQuery() const {
-    auto& scheduler{cache.GetScheduler()};
-    if (tick >= scheduler.CurrentTick()) {
-        scheduler.Flush();
-        // This may not be necessary, but it's better to play it safe and assume drivers don't
-        // support wait before signal on vkGetQueryPoolResults
-        scheduler.WaitWorker();
-    }
+    cache.GetScheduler().Wait(tick);
     u64 data;
     const VkResult query_result = cache.GetDevice().GetLogical().GetQueryResults(
-        query.first, query.second, 1, sizeof(data), &data, sizeof(data),
-        VK_QUERY_RESULT_64_BIT | VK_QUERY_RESULT_WAIT_BIT);
+        query.first, query.second, 1, sizeof(data), &data, sizeof(data), VK_QUERY_RESULT_64_BIT);
 
     switch (query_result) {
     case VK_SUCCESS: