Enum
VkPipelineShaderStageCreateFlagBits
Bitmask controlling how a pipeline shader stage is created
Possible values of the flags
member of
VkPipelineShaderStageCreateInfo specifying how a pipeline shader stage
is created, are:
typedef enum VkPipelineShaderStageCreateFlagBits {
} VkPipelineShaderStageCreateFlagBits;
VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT
specifies that theSubgroupSize
may vary in the shader stage.VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT
specifies that the subgroup sizes must be launched with all invocations active in the task, mesh, or compute stage.
If VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT
and VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT
are
specified and minSubgroupSize
does not
equal maxSubgroupSize
and no
required subgroup size is specified,
then the only way to guarantee that the 'X' dimension of the local workgroup
size is a multiple of SubgroupSize
is to make it a multiple of maxSubgroupSize
.
Under these conditions, you are guaranteed full subgroups but not any
particular subgroup size.