From 39ec3eb6e7dbc80f9af3a7fe591f3560373cc723 Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Tue, 6 Oct 2020 10:42:39 -0400 Subject: [PATCH] pan/bi: Encode skip bit into IR Currently unset. Signed-off-by: Alyssa Rosenzweig Reviewed-by: Boris Brezillon Part-of: --- src/panfrost/bifrost/bi_print.c | 3 +++ src/panfrost/bifrost/compiler.h | 7 +++++++ 2 files changed, 10 insertions(+) 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;