Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Name
VK_EXT_shader_subgroup_ballot - device extension
VK_EXT_shader_subgroup_ballot
- Name String
VK_EXT_shader_subgroup_ballot
- Extension Type
- Device extension
- Registered Extension Number
- 65
- Revision
- 1
- Ratification Status
- Not ratified
- Extension and Version Dependencies; Deprecation State
- Deprecated by Vulkan 1.2
- Contact
Other Extension Metadata
- Last Modified Date
- 2016-11-28
- IP Status
- No known IP claims.
- Interactions and External Dependencies
- This extension requires SPV_KHR_shader_ballot
- This extension provides API support for GL_ARB_shader_ballot
- Contributors
- Jeff Bolz, NVIDIA
- Neil Henning, Codeplay
- Daniel Koch, NVIDIA Corporation
Description
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
, containing the subgroup mask of the current subgroup invocation,SubgroupGeMaskKHR
, containing the subgroup mask of the invocations greater than or equal to the current invocation,SubgroupGtMaskKHR
, containing the subgroup mask of the invocations greater than the current invocation,SubgroupLeMaskKHR
, containing the subgroup mask of the invocations less than or equal to the current invocation,SubgroupLtMaskKHR
, containing the subgroup mask of the invocations less than the current invocation,SubgroupLocalInvocationId
, containing the index of an invocation within a subgroup, andSubgroupSize
, containing 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
.
Deprecated by Vulkan 1.2
Most of the functionality in this extension is superseded by the core
Vulkan 1.1
subgroup operations. However,
Vulkan 1.1 required the OpGroupNonUniformBroadcast
“Id” to be
constant. This restriction was removed in Vulkan 1.2 with the addition
of the
subgroupBroadcastDynamicId
feature.
New Enum Constants
New Built-In Variables
- SubgroupGeMaskKHR
- SubgroupGtMaskKHR
- SubgroupLeMaskKHR
- SubgroupLtMaskKHR
- SubgroupLocalInvocationId
- SubgroupSize
New SPIR-V Capabilities
Version History
Revision 1, 2016-11-28 (Daniel Koch)
- Initial draft
See Also
No cross-references are available
Document Notes
For more information, see the Vulkan Specification
This page is a generated document. Fixes and changes should be made to the generator scripts, not directly.
Documentation
pattern EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION :: forall a. Integral a => a Source #
type EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME = "VK_EXT_shader_subgroup_ballot" Source #
pattern EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a Source #