Description
SubgroupSize
-
Decorating a variable with the
SubgroupSize
builtin decoration will make that variable contain the implementation-dependent number of invocations in a subgroup. This value must be a power-of-two integer.If the pipeline was created with the
VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT
flag set, theSubgroupSize
decorated variable will contain the subgroup size for each subgroup that gets dispatched. This value must be betweenminSubgroupSize
andmaxSubgroupSize
and must be uniform with subgroup scope. The value may vary across a single draw call, and for fragment shaders may vary across a single primitive. In compute dispatches,SubgroupSize
must be uniform with command scope.If the pipeline was created with a chained VkPipelineShaderStageRequiredSubgroupSizeCreateInfo structure, the
SubgroupSize
decorated variable will matchrequiredSubgroupSize
.If the pipeline was not created with the
VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT
flag set and no VkPipelineShaderStageRequiredSubgroupSizeCreateInfo structure was chained, the variable decorated withSubgroupSize
will matchsubgroupSize
.The maximum number of invocations that an implementation can support per subgroup is 128.
Document Notes
For more information, see the Vulkan Specification
This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.