tgsi: Don't ignore indirect registers in tgsi_check_soa_dependencies
authorJosé Fonseca <jfonseca@vmware.com>
Tue, 21 Sep 2010 00:16:19 +0000 (02:16 +0200)
committerJakob Bornecrantz <wallbraker@gmail.com>
Tue, 21 Sep 2010 00:18:43 +0000 (02:18 +0200)
NOTE: This is a candidate for the 7.9 branch.

src/gallium/auxiliary/tgsi/tgsi_exec.c

index 0757f05dfabb7e528002e5dffb73cb36ddb65a16..3a71540506db5bd2fa905cbb224361f4c2e78378 100644 (file)
@@ -605,8 +605,10 @@ tgsi_check_soa_dependencies(const struct tgsi_full_instruction *inst)
    for (i = 0; i < inst->Instruction.NumSrcRegs; i++) {
       if ((inst->Src[i].Register.File ==
            inst->Dst[0].Register.File) &&
-          (inst->Src[i].Register.Index ==
-           inst->Dst[0].Register.Index)) {
+          ((inst->Src[i].Register.Index ==
+            inst->Dst[0].Register.Index) ||
+          inst->Src[i].Register.Indirect ||
+          inst->Dst[0].Register.Indirect)) {
          /* loop over dest channels */
          uint channelsWritten = 0x0;
          FOR_EACH_ENABLED_CHANNEL(*inst, chan) {