ir3/print: add support for alias

Signed-off-by: Job Noorman <jnoorman@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31222>
This commit is contained in:
Job Noorman 2025-01-22 15:33:47 +01:00 committed by Marge Bot
parent fb9de08efd
commit a325573aaf
2 changed files with 34 additions and 0 deletions

View file

@ -399,6 +399,7 @@ static const struct opc_info {
OPC(7, OPC_FENCE, fence),
OPC(7, OPC_LOCK, lock),
OPC(7, OPC_UNLOCK, unlock),
OPC(7, OPC_ALIAS, alias),
/* clang-format on */
#undef OPC
};

View file

@ -18,6 +18,7 @@
#define RESET "\x1b[0m"
#define RED "\x1b[0;31m"
#define GREEN "\x1b[0;32m"
#define YELLOW "\x1b[0;33m"
#define BLUE "\x1b[0;34m"
#define MAGENTA "\x1b[0;35m"
@ -27,6 +28,7 @@
#define SYN_REG(x) RED x RESET
#define SYN_IMMED(x) GREEN x RESET
#define SYN_CONST(x) GREEN x RESET
#define SYN_RT(x) YELLOW x RESET
#define SYN_SSA(x) BLUE x RESET
#define SYN_ARRAY(x) MAGENTA x RESET
@ -243,6 +245,34 @@ print_instr_name(struct log_stream *stream, struct ir3_instruction *instr,
mesa_log_stream_printf(stream, ".%s", type_name(instr->cat6.type));
break;
case OPC_ALIAS:
switch (instr->cat7.alias_scope) {
case ALIAS_TEX:
mesa_log_stream_printf(stream, ".tex");
break;
case ALIAS_RT:
mesa_log_stream_printf(stream, ".rt");
break;
case ALIAS_MEM:
mesa_log_stream_printf(stream, ".mem");
break;
}
if (instr->cat7.alias_type_float) {
mesa_log_stream_printf(stream, ".f");
} else {
mesa_log_stream_printf(stream, ".b");
}
if (instr->srcs[0]->flags & IR3_REG_HALF) {
mesa_log_stream_printf(stream, "16");
} else {
mesa_log_stream_printf(stream, "32");
}
mesa_log_stream_printf(stream, ".%u",
instr->cat7.alias_table_size_minus_one);
break;
default:
break;
}
@ -358,6 +388,9 @@ print_reg_name(struct log_stream *stream, struct ir3_instruction *instr,
else if (reg->flags & IR3_REG_PREDICATE)
mesa_log_stream_printf(stream, SYN_REG("p0.%c"),
"xyzw"[reg_comp(reg)]);
else if (reg->flags & IR3_REG_RT)
mesa_log_stream_printf(stream, SYN_RT("rt%u.%c"), reg_num(reg),
"xyzw"[reg_comp(reg)]);
else
mesa_log_stream_printf(stream, SYN_REG("r%u.%c"), reg_num(reg),
"xyzw"[reg_comp(reg)]);