diff options
| author | 2022-09-10 23:59:34 -0700 | |
|---|---|---|
| committer | 2022-10-18 19:13:35 -0700 | |
| commit | d00245d4440d30a2217c025572cf8a47f4ea2573 (patch) | |
| tree | ee1d69b85e23c7f5a7e9fc7ac17c6e380c5fd798 | |
| parent | core: hle: kernel: Integration application memory block slab manager. (diff) | |
| download | yuzu-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.cpp | 7 |
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 | ||
| 68 | QueryCache::QueryCache(VideoCore::RasterizerInterface& rasterizer_, const Device& device_, | 69 | QueryCache::QueryCache(VideoCore::RasterizerInterface& rasterizer_, const Device& device_, |