diff options
Diffstat (limited to '')
-rw-r--r-- | src/video_core/query_cache/bank_base.h | 1 | ||||
-rw-r--r-- | src/video_core/renderer_vulkan/vk_query_cache.cpp | 7 |
2 files changed, 6 insertions, 2 deletions
diff --git a/src/video_core/query_cache/bank_base.h b/src/video_core/query_cache/bank_base.h index 420927091..44769ea97 100644 --- a/src/video_core/query_cache/bank_base.h +++ b/src/video_core/query_cache/bank_base.h @@ -82,6 +82,7 @@ public: size_t new_index = bank_indices.front(); bank_indices.pop_front(); bank_pool[new_index].Reset(); + bank_indices.push_back(new_index); return new_index; } size_t new_index = bank_pool.size(); diff --git a/src/video_core/renderer_vulkan/vk_query_cache.cpp b/src/video_core/renderer_vulkan/vk_query_cache.cpp index a32da3ba3..2edaafa7e 100644 --- a/src/video_core/renderer_vulkan/vk_query_cache.cpp +++ b/src/video_core/renderer_vulkan/vk_query_cache.cpp @@ -506,6 +506,7 @@ private: SetAccumulationValue(query->value); Free(index); }); + rasterizer->SyncOperation(std::move(func)); } template <bool is_resolve> @@ -1160,7 +1161,7 @@ struct QueryCacheRuntimeImpl { cpu_memory_), primitives_needed_minus_suceeded_streamer( static_cast<size_t>(QueryType::StreamingPrimitivesNeededMinusSucceeded), runtime, 0u), - hcr_setup{}, hcr_is_set{}, is_hcr_running{} { + hcr_setup{}, hcr_is_set{}, is_hcr_running{}, maxwell3d{} { hcr_setup.sType = VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT; hcr_setup.pNext = nullptr; @@ -1235,7 +1236,9 @@ void QueryCacheRuntime::Bind3DEngine(Maxwell3D* maxwell3d) { template <typename Func> void QueryCacheRuntime::View3DRegs(Func&& func) { - func(*impl->maxwell3d); + if (impl->maxwell3d) { + func(*impl->maxwell3d); + } } void QueryCacheRuntime::EndHostConditionalRendering() { |