pan/bi: Structify DISCARD
authorAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Fri, 1 May 2020 22:06:49 +0000 (18:06 -0400)
committerAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Mon, 4 May 2020 15:08:15 +0000 (11:08 -0400)
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4883>

src/panfrost/bifrost/bifrost.h
src/panfrost/bifrost/disassemble.c

index c4fd86b72bcdf073de3e43be3c8e8a5e08930dd8..be0c8dfdab9ef189cd98a06c20964becd217043f 100644 (file)
@@ -166,6 +166,26 @@ struct bifrost_add_inst {
         unsigned op   : 17;
 } __attribute__((packed));
 
+#define BIFROST_ADD_OP_DISCARD (0x19100 >> 8)
+
+enum bifrost_discard_cond {
+        BIFROST_DISCARD_FEQ = 0,
+        BIFROST_DISCARD_FNE = 1,
+        BIFROST_DISCARD_FLE = 2,
+        BIFROST_DISCARD_FLT = 3,
+};
+
+struct bifrost_add_discard {
+        unsigned src0 : 3;
+        unsigned src1 : 3;
+        enum bifrost_discard_cond cond : 2;
+        /* Zero for fp32 */
+        unsigned src0_select : 1;
+        unsigned src1_select : 1;
+        unsigned fp32 : 1;
+        unsigned op   : 9;
+} __attribute__((packed));
+
 #define BIFROST_ADD_OP_LD_UBO_1 (0x0c1a0 >> 3)
 #define BIFROST_ADD_OP_LD_UBO_2 (0x0c1e0 >> 3)
 #define BIFROST_ADD_OP_LD_UBO_3 (0x0caa0 >> 3)
index 38fcb8adc85f32122fbd0d231c26ea34c0aab629..73d773758ce6eb44d5d3de52b97b6077b59999b3 100644 (file)
@@ -1109,7 +1109,7 @@ static const struct add_op_info add_op_infos[] = {
         { 0x17dd0, "ADD.i32.u16.Y", ADD_TWO_SRC },
         { 0x18000, "LD_VAR_ADDR", ADD_VARYING_ADDRESS, false },
         { 0x19100, "DISCARD.FEQ.f16", ADD_TWO_SRC, false },
-        { 0x19188, "DISCARD.FNE.f16", ADD_TWO_SRC, false },
+        { 0x19108, "DISCARD.FNE.f16", ADD_TWO_SRC, false },
         { 0x19110, "DISCARD.FLE.f16", ADD_TWO_SRC, false },
         { 0x19118, "DISCARD.FLT.f16", ADD_TWO_SRC, false },
         { 0x19180, "DISCARD.FEQ.f32", ADD_TWO_SRC, false },