diff options
author | ReinUsesLisp <reinuseslisp@airmail.cc> | 2020-03-30 10:14:35 +0200 |
---|---|---|
committer | ReinUsesLisp <reinuseslisp@airmail.cc> | 2020-04-13 22:33:59 +0200 |
commit | 16105c6a6689886b9fb7a1220c1882a1de5a5191 (patch) | |
tree | 8529fcbea997f1511f789537cc76f0e916308ed4 /src/video_core/renderer_vulkan/vk_query_cache.cpp | |
parent | Merge pull request #3636 from ReinUsesLisp/drop-vk-hpp (diff) | |
download | yuzu-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.cpp | 15 |
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 |