Module: Mesa
Branch: master
Commit: e60e3a56a2edfdf773a388d4dfc0791137f039f1
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=e60e3a56a2edfdf773a388d4dfc0791137f039f1

Author: Eric Anholt <e...@anholt.net>
Date:   Thu Dec 28 16:01:09 2017 -0800

broadcom/vc5: Fix discard_if during control flow.

I want to do the SETMSF.IFA to discard only if execute == 0 and cond, so
our dest of the PUSHZ needs to be nonzero if execute or !cond are nonzero.

Fixes dEQP-GLES3.functional.shaders.discard.dynamic_loop_dynamic.

---

 src/broadcom/compiler/nir_to_vir.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/broadcom/compiler/nir_to_vir.c 
b/src/broadcom/compiler/nir_to_vir.c
index f998f71659..208ee1b86a 100644
--- a/src/broadcom/compiler/nir_to_vir.c
+++ b/src/broadcom/compiler/nir_to_vir.c
@@ -1753,7 +1753,7 @@ ntq_emit_intrinsic(struct v3d_compile *c, 
nir_intrinsic_instr *instr)
                          * the condition so that we can use zero as "executing
                          * and discarding."
                          */
-                        vir_PF(c, vir_AND(c, c->execute, vir_NOT(c, cond)),
+                        vir_PF(c, vir_OR(c, c->execute, vir_NOT(c, cond)),
                                V3D_QPU_PF_PUSHZ);
                         vir_set_cond(vir_SETMSF_dest(c, vir_reg(QFILE_NULL, 0),
                                                      vir_uniform_ui(c, 0)),

_______________________________________________
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to