Module: Mesa Branch: main Commit: 90f8cf0f36c046922ef42448232dc7d0a1647fef URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=90f8cf0f36c046922ef42448232dc7d0a1647fef
Author: Konstantin Seurer <konstantin.seu...@gmail.com> Date: Sun Nov 12 16:21:12 2023 +0100 radv/sqtt: Handle monolithic RT pipelines This marks them as Unified in the RGP UI and shows the compute shader view. Reviewed-by: Friedrich Vock <friedrich.v...@gmx.de> Reviewed-by: Samuel Pitoiset <samuel.pitoi...@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26158> --- src/amd/vulkan/layers/radv_sqtt_layer.c | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/src/amd/vulkan/layers/radv_sqtt_layer.c b/src/amd/vulkan/layers/radv_sqtt_layer.c index 3d7ac2b62c5..bcdf55fb21a 100644 --- a/src/amd/vulkan/layers/radv_sqtt_layer.c +++ b/src/amd/vulkan/layers/radv_sqtt_layer.c @@ -1038,6 +1038,20 @@ sqtt_CmdCopyQueryPoolResults(VkCommandBuffer commandBuffer, VkQueryPool queryPoo #define EVENT_RT_MARKER_ALIAS(cmd_name, event_name, flags, ...) \ EVENT_MARKER_BASE(cmd_name, Dispatch, event_name | flags, __VA_ARGS__); +static uint32_t +radv_get_ray_tracing_type(VkCommandBuffer commandBuffer) +{ + RADV_FROM_HANDLE(radv_cmd_buffer, cmd_buffer, commandBuffer); + + struct radv_ray_tracing_pipeline *pipeline = cmd_buffer->state.rt_pipeline; + + bool monolithic = true; + for (uint32_t i = 0; i < pipeline->stage_count; i++) + monolithic &= pipeline->stages[i].can_inline; + + return monolithic ? 0 : ApiRayTracingSeparateCompiled; +} + VKAPI_ATTR void VKAPI_CALL sqtt_CmdTraceRaysKHR(VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR *pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR *pMissShaderBindingTable, @@ -1045,7 +1059,7 @@ sqtt_CmdTraceRaysKHR(VkCommandBuffer commandBuffer, const VkStridedDeviceAddress const VkStridedDeviceAddressRegionKHR *pCallableShaderBindingTable, uint32_t width, uint32_t height, uint32_t depth) { - EVENT_RT_MARKER(TraceRaysKHR, ApiRayTracingSeparateCompiled, commandBuffer, pRaygenShaderBindingTable, + EVENT_RT_MARKER(TraceRaysKHR, radv_get_ray_tracing_type(commandBuffer), commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, width, height, depth); } @@ -1057,15 +1071,16 @@ sqtt_CmdTraceRaysIndirectKHR(VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR *pCallableShaderBindingTable, VkDeviceAddress indirectDeviceAddress) { - EVENT_RT_MARKER(TraceRaysIndirectKHR, ApiRayTracingSeparateCompiled, commandBuffer, pRaygenShaderBindingTable, - pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, indirectDeviceAddress); + EVENT_RT_MARKER(TraceRaysIndirectKHR, radv_get_ray_tracing_type(commandBuffer), commandBuffer, + pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, + pCallableShaderBindingTable, indirectDeviceAddress); } VKAPI_ATTR void VKAPI_CALL sqtt_CmdTraceRaysIndirect2KHR(VkCommandBuffer commandBuffer, VkDeviceAddress indirectDeviceAddress) { - EVENT_RT_MARKER_ALIAS(TraceRaysIndirect2KHR, TraceRaysIndirectKHR, ApiRayTracingSeparateCompiled, commandBuffer, - indirectDeviceAddress); + EVENT_RT_MARKER_ALIAS(TraceRaysIndirect2KHR, TraceRaysIndirectKHR, radv_get_ray_tracing_type(commandBuffer), + commandBuffer, indirectDeviceAddress); } VKAPI_ATTR void VKAPI_CALL