vc4: Fix assertion about SFU versus texturing.
authorEric Anholt <eric@anholt.net>
Sun, 30 Nov 2014 21:25:16 +0000 (13:25 -0800)
committerEric Anholt <eric@anholt.net>
Mon, 1 Dec 2014 19:00:23 +0000 (11:00 -0800)
We're supposed to be checking that nothing else writes r4, which is done
by the TMU result collection signal, not the coordinate setup.

Avoids a regression when QPU instruction scheduling is introduced.

src/gallium/drivers/vc4/vc4_qpu_validate.c

index 8fe5f41fcf2e349862b60632d91a354f1adc0541..16de82ae7b9cd80f4bc1a3feafb1f294ee73ed18 100644 (file)
@@ -202,12 +202,13 @@ vc4_qpu_validate(uint64_t *insts, uint32_t num_inst)
         int last_sfu_inst = -10;
         for (int i = 0; i < num_inst - 1; i++) {
                 uint64_t inst = insts[i];
+                uint32_t sig = QPU_GET_FIELD(inst, QPU_SIG);
 
                 assert(i - last_sfu_inst > 2 ||
                        (!writes_sfu(inst) &&
-                        !writes_reg(inst, QPU_W_TMU0_S) &&
-                        !writes_reg(inst, QPU_W_TMU1_S) &&
-                        QPU_GET_FIELD(inst, QPU_SIG) != QPU_SIG_COLOR_LOAD));
+                        sig != QPU_SIG_LOAD_TMU0 &&
+                        sig != QPU_SIG_LOAD_TMU1 &&
+                        sig != QPU_SIG_COLOR_LOAD));
 
                 if (writes_sfu(inst))
                         last_sfu_inst = i;