summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/video_core/renderer_vulkan/vk_query_cache.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/video_core/renderer_vulkan/vk_query_cache.cpp b/src/video_core/renderer_vulkan/vk_query_cache.cpp
index 28a793f97..ee2d871e3 100644
--- a/src/video_core/renderer_vulkan/vk_query_cache.cpp
+++ b/src/video_core/renderer_vulkan/vk_query_cache.cpp
@@ -76,7 +76,16 @@ VKQueryCache::VKQueryCache(VideoCore::RasterizerInterface& rasterizer,
76 QueryType::SamplesPassed}, 76 QueryType::SamplesPassed},
77 } {} 77 } {}
78 78
79VKQueryCache::~VKQueryCache() = default; 79VKQueryCache::~VKQueryCache() {
80 // TODO(Rodrigo): This is a hack to destroy all HostCounter instances before the base class
81 // destructor is called. The query cache should be redesigned to have a proper ownership model
82 // instead of using shared pointers.
83 for (size_t query_type = 0; query_type < VideoCore::NumQueryTypes; ++query_type) {
84 auto& stream = Stream(static_cast<QueryType>(query_type));
85 stream.Update(false);
86 stream.Reset();
87 }
88}
80 89
81std::pair<VkQueryPool, u32> VKQueryCache::AllocateQuery(QueryType type) { 90std::pair<VkQueryPool, u32> VKQueryCache::AllocateQuery(QueryType type) {
82 return query_pools[static_cast<std::size_t>(type)].Commit(); 91 return query_pools[static_cast<std::size_t>(type)].Commit();