v3d: Don't try to set PF flags on a LDTMU operation
authorEric Anholt <eric@anholt.net>
Tue, 6 Nov 2018 17:39:40 +0000 (09:39 -0800)
committerEric Anholt <eric@anholt.net>
Thu, 15 Nov 2018 19:12:54 +0000 (11:12 -0800)
We need an ALU op in order to set PF.  Fixes a recent assertion failure in
dEQP-GLES3.functional.ubo.single_basic_type.shared.bool_vertex

src/broadcom/compiler/vir.c

index 3f5a28d1be0b07ece86a1763a15dd192af0978f4..9a671c6c97f90064ad28ead00d37d2f085fd7946 100644 (file)
@@ -1006,6 +1006,12 @@ vir_can_set_flags(struct v3d_compile *c, struct qinst *inst)
                 return false;
         }
 
+        if (inst->qpu.type != V3D_QPU_INSTR_TYPE_ALU ||
+            (inst->qpu.alu.add.op == V3D_QPU_A_NOP &&
+             inst->qpu.alu.mul.op == V3D_QPU_M_NOP)) {
+               return false;
+        }
+
         return true;
 }