summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar bunnei2022-09-10 23:59:34 -0700
committerGravatar bunnei2022-10-18 19:13:35 -0700
commitd00245d4440d30a2217c025572cf8a47f4ea2573 (patch)
treeee1d69b85e23c7f5a7e9fc7ac17c6e380c5fd798
parentcore: hle: kernel: Integration application memory block slab manager. (diff)
downloadyuzu-d00245d4440d30a2217c025572cf8a47f4ea2573.tar.gz
yuzu-d00245d4440d30a2217c025572cf8a47f4ea2573.tar.xz
yuzu-d00245d4440d30a2217c025572cf8a47f4ea2573.zip
video_core: renderer_vulkan: vk_query_cache: Avoid shutdown crash in QueryPool::Reserve.
-rw-r--r--src/video_core/renderer_vulkan/vk_query_cache.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/video_core/renderer_vulkan/vk_query_cache.cpp b/src/video_core/renderer_vulkan/vk_query_cache.cpp
index 7cb02631c..4b15c0f85 100644
--- a/src/video_core/renderer_vulkan/vk_query_cache.cpp
+++ b/src/video_core/renderer_vulkan/vk_query_cache.cpp
@@ -59,10 +59,11 @@ void QueryPool::Reserve(std::pair<VkQueryPool, u32> query) {
59 std::find_if(pools.begin(), pools.end(), [query_pool = query.first](vk::QueryPool& pool) { 59 std::find_if(pools.begin(), pools.end(), [query_pool = query.first](vk::QueryPool& pool) {
60 return query_pool == *pool; 60 return query_pool == *pool;
61 }); 61 });
62 ASSERT(it != std::end(pools));
63 62
64 const std::ptrdiff_t pool_index = std::distance(std::begin(pools), it); 63 if (it != std::end(pools)) {
65 usage[pool_index * GROW_STEP + static_cast<std::ptrdiff_t>(query.second)] = false; 64 const std::ptrdiff_t pool_index = std::distance(std::begin(pools), it);
65 usage[pool_index * GROW_STEP + static_cast<std::ptrdiff_t>(query.second)] = false;
66 }
66} 67}
67 68
68QueryCache::QueryCache(VideoCore::RasterizerInterface& rasterizer_, const Device& device_, 69QueryCache::QueryCache(VideoCore::RasterizerInterface& rasterizer_, const Device& device_,