diff --git a/src/freedreno/vulkan/tu_cmd_buffer.cc b/src/freedreno/vulkan/tu_cmd_buffer.cc index 13f5429aa19..46edd92c7b8 100644 --- a/src/freedreno/vulkan/tu_cmd_buffer.cc +++ b/src/freedreno/vulkan/tu_cmd_buffer.cc @@ -7805,7 +7805,8 @@ tu_dispatch(struct tu_cmd_buffer *cmd, } if (info->indirect) { - trace_start_compute_indirect(&cmd->trace, cs, cmd, info->unaligned); + trace_start_compute_indirect(&cmd->trace, cs, cmd, info->unaligned, + (char *)shader->variant->sha1_str); if (info->unaligned) { tu_cs_emit_pkt7(cs, CP_RUN_OPENCL, 1); @@ -7830,7 +7831,7 @@ tu_dispatch(struct tu_cmd_buffer *cmd, trace_start_compute(&cmd->trace, cs, cmd, info->indirect != 0, info->unaligned, local_size[0], local_size[1], local_size[2], info->blocks[0], info->blocks[1], - info->blocks[2]); + info->blocks[2], (char *)shader->variant->sha1_str); if (info->unaligned) { tu_cs_emit_pkt7(cs, CP_EXEC_CS, 4); diff --git a/src/freedreno/vulkan/tu_tracepoints.py b/src/freedreno/vulkan/tu_tracepoints.py index fd6fbab56b3..188d0ed0a73 100644 --- a/src/freedreno/vulkan/tu_tracepoints.py +++ b/src/freedreno/vulkan/tu_tracepoints.py @@ -26,6 +26,7 @@ from u_trace import utrace_generate_perfetto_utils Header('vk_enum_to_str.h', scope=HeaderScope.SOURCE|HeaderScope.PERFETTO) Header('vk_format.h') +Header('util/sha1/sha1.h') Header('tu_cmd_buffer.h', scope=HeaderScope.SOURCE) Header('tu_device.h', scope=HeaderScope.SOURCE) Header('common/freedreno_lrz.h') @@ -37,6 +38,7 @@ ForwardDecl('struct tu_cmd_buffer') ForwardDecl('struct tu_device') ForwardDecl('struct tu_framebuffer') ForwardDecl('struct tu_tiling_config') +ForwardDecl('typedef char tu_sha1_str[SHA1_DIGEST_STRING_LENGTH]') # List of the default tracepoints enabled. By default tracepoints are enabled, # set tp_default_enabled=False to disable them by default. @@ -168,10 +170,16 @@ begin_end_tp('compute', Arg(type='uint16_t', var='local_size_z', c_format='%u'), Arg(type='uint16_t', var='num_groups_x', c_format='%u'), Arg(type='uint16_t', var='num_groups_y', c_format='%u'), - Arg(type='uint16_t', var='num_groups_z', c_format='%u')]) + Arg(type='uint16_t', var='num_groups_z', c_format='%u'), + Arg(type='tu_sha1_str', var='cs_sha1', + c_format='%s', copy_func='strcpy'), + ]) begin_end_tp('compute_indirect', - args=[Arg(type='uint8_t', var='unaligned', c_format='%u')], + args=[Arg(type='uint8_t', var='unaligned', c_format='%u'), + Arg(type='tu_sha1_str', var='cs_sha1', + c_format='%s', copy_func='strcpy'), + ], end_args=[ArgStruct(type='VkDispatchIndirectCommand', var='size', is_indirect=True, c_format="%ux%ux%u", fields=['x', 'y', 'z'])])