summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar ReinUsesLisp2021-05-07 00:29:37 -0300
committerGravatar ameerj2021-07-22 21:51:30 -0400
commit56c47951c5d92d5e6145060469528301c67e0754 (patch)
tree3fb7999a7f16771826a4c2c4a5bfc7b2306124c9 /src
parentvk_master_semaphore: Use fetch_add to increase master semaphore tick (diff)
downloadyuzu-56c47951c5d92d5e6145060469528301c67e0754.tar.gz
yuzu-56c47951c5d92d5e6145060469528301c67e0754.tar.xz
yuzu-56c47951c5d92d5e6145060469528301c67e0754.zip
vk_query_cache: Wait before reading queries
Diffstat (limited to 'src')
-rw-r--r--src/video_core/renderer_vulkan/vk_query_cache.cpp11
1 files 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() {
114} 114}
115 115
116u64 HostCounter::BlockingQuery() const { 116u64 HostCounter::BlockingQuery() const {
117 auto& scheduler{cache.GetScheduler()}; 117 cache.GetScheduler().Wait(tick);
118 if (tick >= scheduler.CurrentTick()) {
119 scheduler.Flush();
120 // This may not be necessary, but it's better to play it safe and assume drivers don't
121 // support wait before signal on vkGetQueryPoolResults
122 scheduler.WaitWorker();
123 }
124 u64 data; 118 u64 data;
125 const VkResult query_result = cache.GetDevice().GetLogical().GetQueryResults( 119 const VkResult query_result = cache.GetDevice().GetLogical().GetQueryResults(
126 query.first, query.second, 1, sizeof(data), &data, sizeof(data), 120 query.first, query.second, 1, sizeof(data), &data, sizeof(data), VK_QUERY_RESULT_64_BIT);
127 VK_QUERY_RESULT_64_BIT | VK_QUERY_RESULT_WAIT_BIT);
128 121
129 switch (query_result) { 122 switch (query_result) {
130 case VK_SUCCESS: 123 case VK_SUCCESS: