From 9703cf23e37f3f7efc7c75fdd42a2fbb8ff27fdb Mon Sep 17 00:00:00 2001 From: baldurk Date: Fri, 6 Dec 2024 15:58:49 +0000 Subject: [PATCH] Don't use BeginQuery/EndQuery to initialise AS queries --- renderdoc/driver/vulkan/vk_core.cpp | 13 ++++++++++++- renderdoc/driver/vulkan/wrappers/vk_misc_funcs.cpp | 10 ++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/renderdoc/driver/vulkan/vk_core.cpp b/renderdoc/driver/vulkan/vk_core.cpp index 33f23755d..731eddc91 100644 --- a/renderdoc/driver/vulkan/vk_core.cpp +++ b/renderdoc/driver/vulkan/vk_core.cpp @@ -3749,11 +3749,22 @@ void WrappedVulkan::ApplyInitialContents() for(uint32_t q = 0; q < r.queryCount; q++) { // Timestamps are easy - we can do these without needing to render - if(m_CreationInfo.m_QueryPool[GetResID(r.pool)].queryType == VK_QUERY_TYPE_TIMESTAMP) + VkQueryType queryType = m_CreationInfo.m_QueryPool[GetResID(r.pool)].queryType; + if(queryType == VK_QUERY_TYPE_TIMESTAMP) { ObjDisp(cmd)->CmdWriteTimestamp(Unwrap(cmd), VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, Unwrap(r.pool), r.firstQuery + q); } + else if(queryType == VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR || + queryType == VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR || + queryType == VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR) + { + /* + ObjDisp(cmd)->CmdWriteAccelerationStructuresPropertiesKHR( + Unwrap(commandBuffer), 1, UnwrapPtr(m_DummyQueryAS), CreateInfo.queryType, + Unwrap(pool), i); + */ + } else { ObjDisp(cmd)->CmdBeginQuery(Unwrap(cmd), Unwrap(r.pool), r.firstQuery + q, 0); diff --git a/renderdoc/driver/vulkan/wrappers/vk_misc_funcs.cpp b/renderdoc/driver/vulkan/wrappers/vk_misc_funcs.cpp index 705f60a34..71fdfc660 100644 --- a/renderdoc/driver/vulkan/wrappers/vk_misc_funcs.cpp +++ b/renderdoc/driver/vulkan/wrappers/vk_misc_funcs.cpp @@ -1591,6 +1591,16 @@ bool WrappedVulkan::Serialise_vkCreateQueryPool(SerialiserType &ser, VkDevice de ObjDisp(cmd)->CmdWriteTimestamp(Unwrap(cmd), VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, Unwrap(pool), i); } + else if(CreateInfo.queryType == VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR || + CreateInfo.queryType == VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR || + CreateInfo.queryType == VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR) + { + /* + ObjDisp(cmd)->CmdWriteAccelerationStructuresPropertiesKHR( + Unwrap(commandBuffer), 1, UnwrapPtr(m_DummyQueryAS), CreateInfo.queryType, + Unwrap(pool), i); + */ + } else { ObjDisp(cmd)->CmdBeginQuery(Unwrap(cmd), Unwrap(pool), i, 0);