From 1a912a550f34683e731b8f3ef36a15bb38398ae3 Mon Sep 17 00:00:00 2001 From: Rhys Perry Date: Tue, 1 Sep 2020 16:30:34 +0100 Subject: [PATCH] nir: add last_invocation intrinsic MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Rhys Perry Reviewed-by: Daniel Schürmann Part-of: --- src/compiler/nir/nir_divergence_analysis.c | 1 + src/compiler/nir/nir_intrinsics.py | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/compiler/nir/nir_divergence_analysis.c b/src/compiler/nir/nir_divergence_analysis.c index 6a5225d3b94..4996c2e8839 100644 --- a/src/compiler/nir/nir_divergence_analysis.c +++ b/src/compiler/nir/nir_divergence_analysis.c @@ -112,6 +112,7 @@ visit_intrinsic(nir_intrinsic_instr *instr, struct divergence_state *state) case nir_intrinsic_load_subgroup_le_mask: case nir_intrinsic_load_subgroup_lt_mask: case nir_intrinsic_first_invocation: + case nir_intrinsic_last_invocation: case nir_intrinsic_load_base_instance: case nir_intrinsic_load_base_vertex: case nir_intrinsic_load_first_vertex: diff --git a/src/compiler/nir/nir_intrinsics.py b/src/compiler/nir/nir_intrinsics.py index deafdb0e8c6..f7e51c6fd9d 100644 --- a/src/compiler/nir/nir_intrinsics.py +++ b/src/compiler/nir/nir_intrinsics.py @@ -266,10 +266,11 @@ intrinsic("read_first_invocation", src_comp=[0], dest_comp=0, flags=[CAN_ELIMINA # # These correspond to the SPIR-V opcodes # -# OpGroupUniformElect +# OpGroupNonUniformElect # OpSubgroupFirstInvocationKHR intrinsic("elect", dest_comp=1, flags=[CAN_ELIMINATE]) intrinsic("first_invocation", dest_comp=1, flags=[CAN_ELIMINATE]) +intrinsic("last_invocation", dest_comp=1, flags=[CAN_ELIMINATE]) # Memory barrier with semantics analogous to the compute shader # groupMemoryBarrier(), memoryBarrierAtomicCounter(), memoryBarrierBuffer(),