From 890c8714fd914309371ea04d097cf094ca3d4fcd Mon Sep 17 00:00:00 2001 From: Kenneth Graunke Date: Tue, 25 Mar 2025 13:10:29 -0700 Subject: [PATCH] intel/decoder: Decode compute shaders in EXECUTE_INDIRECT_DISPATCH This makes the error state decoder (among other tools) print the compute shaders referenced by EXECUTE_INDIRECT_DISPATCH. We just reuse the existing COMPUTE_WALKER handling as it already looks for a COMPUTE_WALKER_BODY in a larger struct and then INTERFACE_DESCRIPTOR_DATA within that. Reviewed-by: Lionel Landwerlin Reviewed-by: Sushma Venkatesh Reddy Part-of: --- src/intel/decoder/intel_batch_decoder.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/intel/decoder/intel_batch_decoder.c b/src/intel/decoder/intel_batch_decoder.c index 0d327a9c502..caa073adc27 100644 --- a/src/intel/decoder/intel_batch_decoder.c +++ b/src/intel/decoder/intel_batch_decoder.c @@ -503,7 +503,8 @@ handle_compute_walker(struct intel_batch_decode_ctx *ctx, struct intel_field_iterator iter; intel_field_iterator_init(&iter, inst, p, 0, false); while (intel_field_iterator_next(&iter)) { - if (strcmp(iter.name, "body") == 0) { + if (strcmp(iter.name, "body") == 0 || + strcmp(iter.name, "COMPUTE_WALKER_BODY") == 0) { intel_field_iterator_init(&iter, iter.struct_desc, &iter.p[iter.start_bit / 32], 0, false); @@ -1497,6 +1498,7 @@ struct custom_decoder state_handlers[] = { /* Special printing of instructions */ struct custom_decoder custom_decoders[] = { { "COMPUTE_WALKER", handle_compute_walker }, + { "EXECUTE_INDIRECT_DISPATCH", handle_compute_walker }, { "MEDIA_CURBE_LOAD", handle_media_curbe_load }, { "3DSTATE_VERTEX_BUFFERS", handle_3dstate_vertex_buffers }, { "3DSTATE_INDEX_BUFFER", handle_3dstate_index_buffer },