Package org.lwjgl.vulkan
Class EXTShaderSubgroupBallot
- java.lang.Object
-
- org.lwjgl.vulkan.EXTShaderSubgroupBallot
-
public final class EXTShaderSubgroupBallot extends java.lang.Object
This 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_ballot
SPIR-V extension. - This extension requires the
GL_ARB_shader_ballot
extension 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.String
VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME
The extension name.static int
VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION
The 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
-
-