diff --git a/src/freedreno/ir3/ir3.h b/src/freedreno/ir3/ir3.h index 8f3e9c05ba8..79ae245cd26 100644 --- a/src/freedreno/ir3/ir3.h +++ b/src/freedreno/ir3/ir3.h @@ -1000,6 +1000,21 @@ is_tex(struct ir3_instruction *instr) return (opc_cat(instr->opc) == 5) && instr->opc != OPC_TCINV; } +static inline bool +is_tex_shuffle(struct ir3_instruction *instr) +{ + switch (instr->opc) { + case OPC_BRCST_ACTIVE: + case OPC_QUAD_SHUFFLE_BRCST: + case OPC_QUAD_SHUFFLE_HORIZ: + case OPC_QUAD_SHUFFLE_VERT: + case OPC_QUAD_SHUFFLE_DIAG: + return true; + default: + return false; + } +} + static inline bool is_tex_or_prefetch(struct ir3_instruction *instr) { diff --git a/src/freedreno/ir3/ir3_print.c b/src/freedreno/ir3/ir3_print.c index f3db9dcde0d..3e3c54ff72b 100644 --- a/src/freedreno/ir3/ir3_print.c +++ b/src/freedreno/ir3/ir3_print.c @@ -358,6 +358,8 @@ print_instr(struct log_stream *stream, struct ir3_instruction *instr, int lvl) print_instr_name(stream, instr, true); if (is_tex(instr)) { + if (instr->opc == OPC_BRCST_ACTIVE) + mesa_log_stream_printf(stream, ".w%d", instr->cat5.cluster_size); mesa_log_stream_printf(stream, " (%s)(", type_name(instr->cat5.type)); for (unsigned i = 0; i < 4; i++) if (instr->dsts[0]->wrmask & (1 << i)) @@ -391,7 +393,8 @@ print_instr(struct log_stream *stream, struct ir3_instruction *instr, int lvl) } } - if (is_tex(instr) && !(instr->flags & IR3_INSTR_S2EN)) { + if (is_tex(instr) && !(instr->flags & IR3_INSTR_S2EN) && + !is_tex_shuffle(instr)) { if (!!(instr->flags & IR3_INSTR_B) && !!(instr->flags & IR3_INSTR_A1EN)) { mesa_log_stream_printf(stream, ", s#%d", instr->cat5.samp); } else {