nir: add last_invocation intrinsic
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6558>
This commit is contained in:
@@ -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_le_mask:
|
||||||
case nir_intrinsic_load_subgroup_lt_mask:
|
case nir_intrinsic_load_subgroup_lt_mask:
|
||||||
case nir_intrinsic_first_invocation:
|
case nir_intrinsic_first_invocation:
|
||||||
|
case nir_intrinsic_last_invocation:
|
||||||
case nir_intrinsic_load_base_instance:
|
case nir_intrinsic_load_base_instance:
|
||||||
case nir_intrinsic_load_base_vertex:
|
case nir_intrinsic_load_base_vertex:
|
||||||
case nir_intrinsic_load_first_vertex:
|
case nir_intrinsic_load_first_vertex:
|
||||||
|
@@ -266,10 +266,11 @@ intrinsic("read_first_invocation", src_comp=[0], dest_comp=0, flags=[CAN_ELIMINA
|
|||||||
#
|
#
|
||||||
# These correspond to the SPIR-V opcodes
|
# These correspond to the SPIR-V opcodes
|
||||||
#
|
#
|
||||||
# OpGroupUniformElect
|
# OpGroupNonUniformElect
|
||||||
# OpSubgroupFirstInvocationKHR
|
# OpSubgroupFirstInvocationKHR
|
||||||
intrinsic("elect", dest_comp=1, flags=[CAN_ELIMINATE])
|
intrinsic("elect", dest_comp=1, flags=[CAN_ELIMINATE])
|
||||||
intrinsic("first_invocation", 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
|
# Memory barrier with semantics analogous to the compute shader
|
||||||
# groupMemoryBarrier(), memoryBarrierAtomicCounter(), memoryBarrierBuffer(),
|
# groupMemoryBarrier(), memoryBarrierAtomicCounter(), memoryBarrierBuffer(),
|
||||||
|
Reference in New Issue
Block a user