intel/decoder: Decode compute shaders in EXECUTE_INDIRECT_DISPATCH
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run

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 <lionel.g.landwerlin@intel.com>
Reviewed-by: Sushma Venkatesh Reddy <sushma.venkatesh.reddy@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34198>
This commit is contained in:
Kenneth Graunke 2025-03-25 13:10:29 -07:00 committed by Marge Bot
parent bc0ceb136f
commit 890c8714fd

View file

@ -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 },