mirror of
https://github.com/status-im/Vulkan-Docs.git
synced 2025-02-18 09:16:51 +00:00
* Update release number to 98. Public Issues: * Fix missing markup in flink:vkDestroyPipelineLayout valid usage statement (pull request 882). * Add missing contributors for `<<VK_EXT_buffer_device_address>>` (public pull request 891). Internal Issues: * Detect nested bullet points in valid usage blocks and warn about them during VUID assignment (internal issue 1382). * Update the style guide to document the process for reserving new bits in bitmask types (internal issue 1411). * Clarify for slink:VkApplicationInfo::pname:apiVersion and in the <<fundamentals-validusage-versions, Valid Usage for Newer Core Versions>> section when it is valid for an application to use a certain version of Vulkan API functionality (for an instance and for a device/physical device); and when the validation layers must generate an error (internal issue 1412). * Add optional <<memory-model-availability-visibility, transitive availability/visibility operations to the memory model, including a new pname:vulkanMemoryModelAvailabilityVisibilityChains feature for slink:VkPhysicalDeviceVulkanMemoryModelFeaturesKHR (internal issue 1460). * Add the code:StorageBuffer storage class to those in the <<interfaces-resources-descset, Descriptor Set Interface>> (internal issue 1480). * Add missing `returnedonly` tags for a number of returned extension structures that can be passed in pname:pNext chains (internal issue 1515). * Clean up and rearrange some spec language for slink:VkRenderPassCreateInfo and slink:VkAttachmentReference.txt (internal issue 1522). * Correctly round the code:OpVectorTimesScalar and code:OpMatrixTimesScalar SPIR-V operations in the <<Precision of core SPIR-V Instructions>> table (internal merge request 2996). * Work around cases in flink:vkCmdBeginTransformFeedbackEXT, flink:vkCmdEndTransformFeedbackEXT, and slink:VkPipelineCoverageModulationStateCreateInfoNV where an array parameter is `optional` but the length is not in `vk.xml`. This is an interim fix using `noautovalidity` + handcoded VU replacing those that should be autogenerated (internal issue 2944 and https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/480). * Remove redundant capability validation of the code:float16 and code:int8 SPIR-V capabilities from the <<spirvenv-capabilities, Capabilities>> section, since they are already covered in the preceding table. * Update check_spec_links script, including validation for reference page open blocks. Fix errors identified by the script.
109 lines
3.7 KiB
Plaintext
109 lines
3.7 KiB
Plaintext
include::meta/VK_EXT_shader_subgroup_ballot.txt[]
|
|
|
|
*Last Modified Date*::
|
|
2016-11-28
|
|
*IP Status*::
|
|
No known IP claims.
|
|
*Interactions and External Dependencies*::
|
|
- This extension requires the
|
|
https://www.khronos.org/registry/spir-v/extensions/KHR/SPV_KHR_shader_ballot.html[`SPV_KHR_shader_ballot`]
|
|
SPIR-V extension.
|
|
- This extension requires the
|
|
https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_shader_ballot.txt[`GL_ARB_shader_ballot`]
|
|
extension for GLSL source languages.
|
|
*Contributors*::
|
|
- Jeff Bolz, NVIDIA
|
|
- Neil Henning, Codeplay
|
|
- Daniel Koch, NVIDIA Corporation
|
|
|
|
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:
|
|
|
|
* code:SubgroupEqMaskKHR, which contains the subgroup mask of the current
|
|
subgroup invocation,
|
|
* code:SubgroupGeMaskKHR, which contains the subgroup mask of the
|
|
invocations greater than or equal to the current invocation,
|
|
* code:SubgroupGtMaskKHR, which contains the subgroup mask of the
|
|
invocations greater than the current invocation,
|
|
* code:SubgroupLeMaskKHR, which contains the subgroup mask of the
|
|
invocations less than or equal to the current invocation,
|
|
* code:SubgroupLtMaskKHR, which contains the subgroup mask of the
|
|
invocations less than the current invocation,
|
|
* code:SubgroupLocalInvocationId, which contains the index of an
|
|
invocation within a subgroup, and
|
|
* code:SubgroupSize, which contains the maximum number of invocations in a
|
|
subgroup.
|
|
|
|
Additionally, this extension provides access to the new SPIR-V instructions:
|
|
|
|
* code:OpSubgroupBallotKHR,
|
|
* code:OpSubgroupFirstInvocationKHR, and
|
|
* code:OpSubgroupReadInvocationKHR,
|
|
|
|
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;` -> code:SubgroupEqMaskKHR,
|
|
* `in uint64_t gl_SubGroupGeMaskARB;` -> code:SubgroupGeMaskKHR,
|
|
* `in uint64_t gl_SubGroupGtMaskARB;` -> code:SubgroupGtMaskKHR,
|
|
* `in uint64_t gl_SubGroupLeMaskARB;` -> code:SubgroupLeMaskKHR,
|
|
* `in uint64_t gl_SubGroupLtMaskARB;` -> code:SubgroupLtMaskKHR,
|
|
* `in uint gl_SubGroupInvocationARB;` -> code:SubgroupLocalInvocationId,
|
|
* `uniform uint gl_SubGroupSizeARB;` -> code:SubgroupSize,
|
|
* code:ballotARB() -> code:OpSubgroupBallotKHR,
|
|
* code:readFirstInvocationARB() -> code:OpSubgroupFirstInvocationKHR, and
|
|
* code:readInvocationARB() -> code:OpSubgroupReadInvocationKHR.
|
|
|
|
=== New Object Types
|
|
|
|
None.
|
|
|
|
=== New Enum Constants
|
|
|
|
None.
|
|
|
|
=== New Enums
|
|
|
|
None.
|
|
|
|
=== New Structures
|
|
|
|
None.
|
|
|
|
=== New Functions
|
|
|
|
None.
|
|
|
|
=== New Built-In Variables
|
|
|
|
* <<interfaces-builtin-variables-sgeq,code:SubgroupEqMaskKHR>>
|
|
* <<interfaces-builtin-variables-sgge,code:SubgroupGeMaskKHR>>
|
|
* <<interfaces-builtin-variables-sggt,code:SubgroupGtMaskKHR>>
|
|
* <<interfaces-builtin-variables-sgle,code:SubgroupLeMaskKHR>>
|
|
* <<interfaces-builtin-variables-sglt,code:SubgroupLtMaskKHR>>
|
|
* <<interfaces-builtin-variables-sgli,code:SubgroupLocalInvocationId>>
|
|
* <<interfaces-builtin-variables-sgs,code:SubgroupSize>>
|
|
|
|
=== New SPIR-V Capabilities
|
|
|
|
* <<spirvenv-capabilities-table-subgroupballot,SubgroupBallotKHR>>
|
|
|
|
=== Issues
|
|
|
|
None.
|
|
|
|
=== Version History
|
|
|
|
* Revision 1, 2016-11-28 (Daniel Koch)
|
|
- Initial draft
|