Package org.lwjgl.vulkan
Class EXTShaderSubgroupBallot
- java.lang.Object
-
- org.lwjgl.vulkan.EXTShaderSubgroupBallot
-
public final class EXTShaderSubgroupBallot extends java.lang.ObjectThis extension adds support for the following SPIR-V extension in Vulkan:SPV_KHR_shader_ballot
This extension provides the ability for a group of invocations, which execute in parallel, to do limited forms of cross-invocation communication via a group broadcast of a invocation value, or broadcast of a bitarray representing a predicate value from each invocation in the group.
This extension provides access to a number of additional built-in shader variables in Vulkan:
SubgroupEqMaskKHR, which contains the subgroup mask of the current subgroup invocation,SubgroupGeMaskKHR, which contains the subgroup mask of the invocations greater than or equal to the current invocation,SubgroupGtMaskKHR, which contains the subgroup mask of the invocations greater than the current invocation,SubgroupLeMaskKHR, which contains the subgroup mask of the invocations less than or equal to the current invocation,SubgroupLtMaskKHR, which contains the subgroup mask of the invocations less than the current invocation,SubgroupLocalInvocationId, which contains the index of an invocation within a subgroup, andSubgroupSize, which contains the maximum number of invocations in a subgroup.
Additionally, this extension provides access to the new SPIR-V instructions:
OpSubgroupBallotKHR,OpSubgroupFirstInvocationKHR, andOpSubgroupReadInvocationKHR,
When using GLSL source-based shader languages, the following variables and shader functions from GL_ARB_shader_ballot can map to these SPIR-V built-in decorations and instructions:
in uint64_t gl_SubGroupEqMaskARB;→SubgroupEqMaskKHR,in uint64_t gl_SubGroupGeMaskARB;→SubgroupGeMaskKHR,in uint64_t gl_SubGroupGtMaskARB;→SubgroupGtMaskKHR,in uint64_t gl_SubGroupLeMaskARB;→SubgroupLeMaskKHR,in uint64_t gl_SubGroupLtMaskARB;→SubgroupLtMaskKHR,in uint gl_SubGroupInvocationARB;→SubgroupLocalInvocationId,uniform uint gl_SubGroupSizeARB;→SubgroupSize,ballotARB() →OpSubgroupBallotKHR,readFirstInvocationARB() →OpSubgroupFirstInvocationKHR, andreadInvocationARB() →OpSubgroupReadInvocationKHR.
- Name String
VK_EXT_shader_subgroup_ballot- Extension Type
- Device extension
- Registered Extension Number
- 65
- Revision
- 1
- Extension and Version Dependencies
- Requires Vulkan 1.0
- Contact
- Daniel Koch dgkoch
- Last Modified Date
- 2016-11-28
- IP Status
- No known IP claims.
- Interactions and External Dependencies
- This extension requires the
SPV_KHR_shader_ballotSPIR-V extension. - This extension requires the
GL_ARB_shader_ballotextension for GLSL source languages.
- This extension requires the
- Contributors
- Jeff Bolz, NVIDIA
- Neil Henning, Codeplay
- Daniel Koch, NVIDIA Corporation
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringVK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAMEThe extension name.static intVK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSIONThe extension specification version.
-
-
-
Field Detail
-
VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION
public static final int VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION
The extension specification version.- See Also:
- Constant Field Values
-
VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME
public static final java.lang.String VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME
The extension name.- See Also:
- Constant Field Values
-
-