Browse Source

video_core: renderer_vulkan: vk_query_cache: Avoid shutdown crash in QueryPool::Reserve.

nce_cpp
bunnei 3 years ago
parent
commit
2a909989ee
  1. 3
      src/video_core/renderer_vulkan/vk_query_cache.cpp

3
src/video_core/renderer_vulkan/vk_query_cache.cpp

@ -59,11 +59,12 @@ void QueryPool::Reserve(std::pair<VkQueryPool, u32> query) {
std::find_if(pools.begin(), pools.end(), [query_pool = query.first](vk::QueryPool& pool) { std::find_if(pools.begin(), pools.end(), [query_pool = query.first](vk::QueryPool& pool) {
return query_pool == *pool; return query_pool == *pool;
}); });
ASSERT(it != std::end(pools));
if (it != std::end(pools)) {
const std::ptrdiff_t pool_index = std::distance(std::begin(pools), it); const std::ptrdiff_t pool_index = std::distance(std::begin(pools), it);
usage[pool_index * GROW_STEP + static_cast<std::ptrdiff_t>(query.second)] = false; usage[pool_index * GROW_STEP + static_cast<std::ptrdiff_t>(query.second)] = false;
} }
}
QueryCache::QueryCache(VideoCore::RasterizerInterface& rasterizer_, const Device& device_, QueryCache::QueryCache(VideoCore::RasterizerInterface& rasterizer_, const Device& device_,
Scheduler& scheduler_) Scheduler& scheduler_)

Loading…
Cancel
Save