diff --git a/src/panfrost/bifrost/bi_print.c b/src/panfrost/bifrost/bi_print.c index e801f772b4e..f95295cf657 100644 --- a/src/panfrost/bifrost/bi_print.c +++ b/src/panfrost/bifrost/bi_print.c @@ -277,6 +277,9 @@ bi_print_instruction(bi_instruction *ins, FILE *fp) if (bi_class_props[ins->type] & BI_CONDITIONAL) fprintf(fp, ".%s", bi_cond_name(ins->cond)); + if (ins->skip) + fprintf(fp, ".skip"); + if (ins->vector_channels) fprintf(fp, ".v%u", ins->vector_channels); diff --git a/src/panfrost/bifrost/compiler.h b/src/panfrost/bifrost/compiler.h index 43978dbffce..23641b34254 100644 --- a/src/panfrost/bifrost/compiler.h +++ b/src/panfrost/bifrost/compiler.h @@ -300,6 +300,13 @@ typedef struct { /* For VECTOR ops, how many channels are written? */ unsigned vector_channels; + /* For texture ops, the skip bit. Set if helper invocations can skip + * the operation. That is, set if the result of this texture operation + * is never used for cross-lane operation (including texture + * coordinates and derivatives) as determined by data flow analysis + * (like Midgard) */ + bool skip; + /* The comparison op. BI_COND_ALWAYS may not be valid. */ enum bi_cond cond;