tgsi_exec: Fix mask calculation for emit_kill_if.
authorJosé Fonseca <jfonseca@vmware.com>
Wed, 20 Nov 2013 17:31:43 +0000 (17:31 +0000)
committerJosé Fonseca <jfonseca@vmware.com>
Thu, 21 Nov 2013 13:56:10 +0000 (13:56 +0000)
Same as Si Chen's commit e7a5905d8a3960b0981750f8131e3af9acbfcdb8 for
tgsi_exec module.

Not actually tested, because softpipe is failing the test that caught
this bug due to unrelated issues.

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
src/gallium/auxiliary/tgsi/tgsi_exec.c

index 6db1238a60da9953cfa97dbe32275729ab86e8c1..b6149074ab745a9e6bacd667aa13a740783b1ef9 100644 (file)
@@ -1610,6 +1610,9 @@ exec_kill_if(struct tgsi_exec_machine *mach,
             kilmask |= 1 << i;
    }
 
+   /* restrict to fragments currently executing */
+   kilmask &= mach->ExecMask;
+
    mach->Temps[TEMP_KILMASK_I].xyzw[TEMP_KILMASK_C].u[0] |= kilmask;
 }