summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_vulkan/vk_query_cache.cpp
diff options
context:
space:
mode:
authorReinUsesLisp <reinuseslisp@airmail.cc>2020-03-30 10:14:35 +0200
committerReinUsesLisp <reinuseslisp@airmail.cc>2020-04-13 22:33:59 +0200
commit16105c6a6689886b9fb7a1220c1882a1de5a5191 (patch)
tree8529fcbea997f1511f789537cc76f0e916308ed4 /src/video_core/renderer_vulkan/vk_query_cache.cpp
parentMerge pull request #3636 from ReinUsesLisp/drop-vk-hpp (diff)
downloadyuzu-16105c6a6689886b9fb7a1220c1882a1de5a5191.tar
yuzu-16105c6a6689886b9fb7a1220c1882a1de5a5191.tar.gz
yuzu-16105c6a6689886b9fb7a1220c1882a1de5a5191.tar.bz2
yuzu-16105c6a6689886b9fb7a1220c1882a1de5a5191.tar.lz
yuzu-16105c6a6689886b9fb7a1220c1882a1de5a5191.tar.xz
yuzu-16105c6a6689886b9fb7a1220c1882a1de5a5191.tar.zst
yuzu-16105c6a6689886b9fb7a1220c1882a1de5a5191.zip
Diffstat (limited to 'src/video_core/renderer_vulkan/vk_query_cache.cpp')
-rw-r--r--src/video_core/renderer_vulkan/vk_query_cache.cpp15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/video_core/renderer_vulkan/vk_query_cache.cpp b/src/video_core/renderer_vulkan/vk_query_cache.cpp
index 0966c7ff7..813f7c162 100644
--- a/src/video_core/renderer_vulkan/vk_query_cache.cpp
+++ b/src/video_core/renderer_vulkan/vk_query_cache.cpp
@@ -113,8 +113,19 @@ u64 HostCounter::BlockingQuery() const {
if (ticks >= cache.Scheduler().Ticks()) {
cache.Scheduler().Flush();
}
- return cache.Device().GetLogical().GetQueryResult<u64>(
- query.first, query.second, VK_QUERY_RESULT_64_BIT | VK_QUERY_RESULT_WAIT_BIT);
+ u64 data;
+ const VkResult result = cache.Device().GetLogical().GetQueryResults(
+ query.first, query.second, 1, sizeof(data), &data, sizeof(data),
+ VK_QUERY_RESULT_64_BIT | VK_QUERY_RESULT_WAIT_BIT);
+ switch (result) {
+ case VK_SUCCESS:
+ return data;
+ case VK_ERROR_DEVICE_LOST:
+ cache.Device().ReportLoss();
+ [[fallthrough]];
+ default:
+ throw vk::Exception(result);
+ }
}
} // namespace Vulkan