pan/bi: Add normal/compact/dual switch to IR
authorAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Tue, 21 Apr 2020 16:26:42 +0000 (12:26 -0400)
committerMarge Bot <eric+marge@anholt.net>
Wed, 22 Apr 2020 01:01:17 +0000 (01:01 +0000)
For tex.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4671>

src/panfrost/bifrost/bi_print.c
src/panfrost/bifrost/bi_print.h
src/panfrost/bifrost/compiler.h

index 5f718e95a37b29f2d3c31dd3fd29367180bd1696..202cbc0fb0efd5499f78014bfac7b3883b55b37c 100644 (file)
@@ -304,6 +304,17 @@ bi_frexp_op_name(enum bi_frexp_op op)
         }
 }
 
+const char *
+bi_tex_op_name(enum bi_tex_op op)
+{
+        switch (op) {
+        case BI_TEX_NORMAL: return "normal";
+        case BI_TEX_COMPACT: return "compact";
+        case BI_TEX_DUAL: return "dual";
+        default: return "invalid";
+        }
+}
+
 static void
 bi_print_load_vary(struct bi_load_vary *load, FILE *fp)
 {
@@ -395,6 +406,8 @@ bi_print_instruction(bi_instruction *ins, FILE *fp)
                 fprintf(fp, ".loc%u", ins->blend_location);
         else if (ins->type == BI_STORE || ins->type == BI_STORE_VAR)
                 fprintf(fp, ".v%u", ins->store_channels);
+        else if (ins->type == BI_TEX)
+                fprintf(fp, ".%s", bi_tex_op_name(ins->op.texture));
 
         if (ins->dest)
                 bi_print_alu_type(ins->dest_type, fp);
index 7635044954767502d2dde7adb513cafe7f2e69d7..dfc916a593c577400e09acf31c53cfb7fa0601ba 100644 (file)
@@ -44,6 +44,7 @@ const char * bi_special_op_name(enum bi_special_op op);
 const char * bi_table_op_name(enum bi_table_op op);
 const char * bi_reduce_op_name(enum bi_reduce_op op);
 const char * bi_frexp_op_name(enum bi_frexp_op op);
+const char * bi_tex_op_name(enum bi_tex_op op);
 
 void bi_print_instruction(bi_instruction *ins, FILE *fp);
 void bi_print_bundle(bi_bundle *bundle, FILE *fp);
index 96be391ca357136c4248c8017a3ed1cda9dfa028..1cbb211b778a445f2bbb0a4762da6d16c0112619 100644 (file)
@@ -214,6 +214,12 @@ enum bi_special_op {
         BI_SPECIAL_EXP2_LOW,
 };
 
+enum bi_tex_op {
+        BI_TEX_NORMAL,
+        BI_TEX_COMPACT,
+        BI_TEX_DUAL
+};
+
 typedef struct {
         struct list_head link; /* Must be first */
         enum bi_class type;
@@ -275,6 +281,7 @@ typedef struct {
                 enum bi_table_op table;
                 enum bi_frexp_op frexp;
                 enum bi_cond compare;
+                enum bi_tex_op texture;
 
                 /* For FMA/ADD, should we add a biased exponent? */
                 bool mscale;