Mesa (master): v3d: Add support for gl_HelperInvocation.
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Sun Dec 30 16:11:59 UTC 2018
Module: Mesa
Branch: master
Commit: ad1e59cf8d05f07db9f8d4183b3179cef230edfa
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=ad1e59cf8d05f07db9f8d4183b3179cef230edfa
Author: Eric Anholt <eric at anholt.net>
Date: Fri Dec 28 11:30:52 2018 -0800
v3d: Add support for gl_HelperInvocation.
We can just look at the MSF flags -- if they're unset, then we're
definitely in a helper invocation. Fixes
dEQP-GLES31.functional.shaders.helper_invocation.* with GLES3.1 enabled.
---
src/broadcom/compiler/nir_to_vir.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/src/broadcom/compiler/nir_to_vir.c b/src/broadcom/compiler/nir_to_vir.c
index e01668c62c..73fed4e816 100644
--- a/src/broadcom/compiler/nir_to_vir.c
+++ b/src/broadcom/compiler/nir_to_vir.c
@@ -1596,6 +1596,14 @@ ntq_emit_intrinsic(struct v3d_compile *c, nir_intrinsic_instr *instr)
ntq_store_dest(c, &instr->dest, 0, vir_MSF(c));
break;
+ case nir_intrinsic_load_helper_invocation:
+ vir_PF(c, vir_MSF(c), V3D_QPU_PF_PUSHZ);
+ ntq_store_dest(c, &instr->dest, 0,
+ vir_MOV(c, vir_SEL(c, V3D_QPU_COND_IFA,
+ vir_uniform_ui(c, ~0),
+ vir_uniform_ui(c, 0))));
+ break;
+
case nir_intrinsic_load_front_face:
/* The register contains 0 (front) or 1 (back), and we need to
* turn it into a NIR bool where true means front.
More information about the mesa-commit
mailing list