From 7f3439714858d4c70f60db71543df15db5708d92 Mon Sep 17 00:00:00 2001 From: Nicolas James Date: Fri, 20 Feb 2026 20:57:37 +1100 Subject: Don't inject timestamps into unsupported queues --- src/layer.cc | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'src/layer.cc') diff --git a/src/layer.cc b/src/layer.cc index d09f7be..6dfff9b 100644 --- a/src/layer.cc +++ b/src/layer.cc @@ -92,6 +92,7 @@ CreateInstance(const VkInstanceCreateInfo* pCreateInfo, INSTANCE_VTABLE_LOAD(GetInstanceProcAddr); INSTANCE_VTABLE_LOAD(CreateDevice); INSTANCE_VTABLE_LOAD(EnumerateDeviceExtensionProperties); + INSTANCE_VTABLE_LOAD(GetPhysicalDeviceQueueFamilyProperties2); #undef INSTANCE_VTABLE_LOAD const auto lock = std::scoped_lock{layer_context.mutex}; @@ -384,7 +385,7 @@ static VKAPI_ATTR void VKAPI_CALL GetDeviceQueue2( if (!queue || !*queue) { return; } - + const auto key = layer_context.get_key(*queue); const auto lock = std::scoped_lock{layer_context.mutex}; const auto [it, inserted] = layer_context.contexts.try_emplace(key); @@ -443,6 +444,10 @@ vkQueueSubmit(VkQueue queue, std::uint32_t submit_count, if (!submit_count) { // no-op submit we shouldn't worry about return vtable.QueueSubmit(queue, submit_count, submit_infos, fence); } + + if (!queue_context->should_inject_timestamps()) { + return vtable.QueueSubmit(queue, submit_count, submit_infos, fence); + } // What's happening here? // We are making a very modest modification to all vkQueueSubmits where we @@ -527,6 +532,10 @@ vkQueueSubmit2(VkQueue queue, std::uint32_t submit_count, return vtable.QueueSubmit2(queue, submit_count, submit_infos, fence); } + if (!queue_context->should_inject_timestamps()) { + return vtable.QueueSubmit2(queue, submit_count, submit_infos, fence); + } + using cbs_t = std::vector; auto next_submits = std::vector{}; auto next_cbs = std::vector>{}; -- cgit v1.2.3