VkPhysicalDeviceSubgroupSizeControlFeatures
The VkPhysicalDeviceSubgroupSizeControlFeatures structure is defined
as:
typedef struct VkPhysicalDeviceSubgroupSizeControlFeatures {
VkStructureType sType;
void* pNext;
VkBool32 subgroupSizeControl;
VkBool32 computeFullSubgroups;
} VkPhysicalDeviceSubgroupSizeControlFeatures;
or the equivalent
typedef VkPhysicalDeviceSubgroupSizeControlFeatures VkPhysicalDeviceSubgroupSizeControlFeaturesEXT;
This structure describes the following features:
sTypeis a VkStructureType value identifying this structure.pNextisNULLor a pointer to a structure extending this structure.subgroupSizeControlindicates whether the implementation supports controlling shader subgroup sizes via theVK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BITflag and the VkPipelineShaderStageRequiredSubgroupSizeCreateInfo structure.computeFullSubgroupsindicates whether the implementation supports requiring full subgroups in compute , mesh, or task shaders via theVK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BITflag.
If the VkPhysicalDeviceSubgroupSizeControlFeatures structure is included in the pNext chain of the
VkPhysicalDeviceFeatures2 structure passed to
vkGetPhysicalDeviceFeatures2, it is filled in to indicate whether each
corresponding feature is supported.
If the application wishes to use a VkDevice with any features
described by VkPhysicalDeviceSubgroupSizeControlFeatures, it must add an instance of the structure,
with the desired feature members set to VK_TRUE, to the pNext
chain of VkDeviceCreateInfo when creating the VkDevice.
The VkPhysicalDeviceSubgroupSizeControlFeaturesEXT structure was added
in version 2 of the VK_EXT_subgroup_size_control extension.
Version 1 implementations of this extension will not fill out the features
structure but applications may assume that both subgroupSizeControl
and computeFullSubgroups are supported if the extension is supported.
(See also the Feature Requirements section.)
Applications are advised to add a
VkPhysicalDeviceSubgroupSizeControlFeaturesEXT structure to the
pNext chain of VkDeviceCreateInfo to enable the features
regardless of the version of the extension supported by the implementation.
If the implementation only supports version 1, it will safely ignore the
VkPhysicalDeviceSubgroupSizeControlFeaturesEXT structure.
Vulkan 1.3 implementations always support the features structure.
Valid Usage (Implicit)
VUID-VkPhysicalDeviceSubgroupSizeControlFeatures-sType-sType
sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES