v3d: Fix an invalid reuse of flags generation from before a thrsw.
authorEric Anholt <eric@anholt.net>
Wed, 17 Apr 2019 21:07:20 +0000 (14:07 -0700)
committerEric Anholt <eric@anholt.net>
Thu, 18 Apr 2019 20:24:55 +0000 (13:24 -0700)
Noticed while debugging the last GLES 3.1 failure, though it doesn't seem
to affect that bug.

src/broadcom/compiler/vir_opt_redundant_flags.c

index b61514f6c99c2795a504b2087b5e60cdbff96db6..61ebf5dfa2497c59192f21622f46c8bc420d30cb 100644 (file)
@@ -107,6 +107,10 @@ vir_opt_redundant_flags_block(struct v3d_compile *c, struct qblock *block)
                         continue;
                 }
 
+                /* Flags aren't preserved across a thrsw. */
+                if (inst->qpu.sig.thrsw)
+                        last_flags = NULL;
+
                 if (inst->qpu.flags.apf != V3D_QPU_PF_NONE ||
                     inst->qpu.flags.mpf != V3D_QPU_PF_NONE) {
                         if (last_flags &&