Structures
VkPhysicalDeviceSubgroupSizeControlProperties
Structure describing the control subgroup size properties of an implementation
The VkPhysicalDeviceSubgroupSizeControlProperties structure is defined
as:
typedef struct VkPhysicalDeviceSubgroupSizeControlProperties {
VkStructureType sType;
void* pNext;
uint32_t minSubgroupSize;
uint32_t maxSubgroupSize;
uint32_t maxComputeWorkgroupSubgroups;
VkShaderStageFlags requiredSubgroupSizeStages;
} VkPhysicalDeviceSubgroupSizeControlProperties;
pub struct PhysicalDeviceSubgroupSizeControlProperties {
s_type: vk::StructureType,
p_next: *mut c_void,
min_subgroup_size: u32, // The minimum subgroup size supported by this device
max_subgroup_size: u32, // The maximum subgroup size supported by this device
max_compute_workgroup_subgroups: u32, // The maximum number of subgroups supported in a workgroup
required_subgroup_size_stages: vk::ShaderStageFlags, // The shader stages that support specifying a subgroup size
}
typedef VkPhysicalDeviceSubgroupSizeControlProperties VkPhysicalDeviceSubgroupSizeControlPropertiesEXT;
type PhysicalDeviceSubgroupSizeControlPropertiesEXT = vk::PhysicalDeviceSubgroupSizeControlProperties;
sTypeis a VkStructureType value identifying this structure.pNextisNULLor a pointer to a structure extending this structure.minSubgroupSizeis the minimum subgroup size supported by this device.minSubgroupSizeis at least one if any of the physical device’s queues supportVK_QUEUE_GRAPHICS_BITorVK_QUEUE_COMPUTE_BIT.minSubgroupSizeis a power-of-two.minSubgroupSizeis less than or equal tomaxSubgroupSize.minSubgroupSizeis less than or equal tosubgroupSize.maxSubgroupSizeis the maximum subgroup size supported by this device.maxSubgroupSizeis at least one if any of the physical device’s queues supportVK_QUEUE_GRAPHICS_BITorVK_QUEUE_COMPUTE_BIT.maxSubgroupSizeis a power-of-two.maxSubgroupSizeis greater than or equal tominSubgroupSize.maxSubgroupSizeis greater than or equal tosubgroupSize.maxComputeWorkgroupSubgroupsis the maximum number of subgroups supported by the implementation within a workgroup.requiredSubgroupSizeStagesis a bitfield of what shader stages support having a required subgroup size specified.
If the VkPhysicalDeviceSubgroupSizeControlProperties structure is included in the pNext chain of the
VkPhysicalDeviceProperties2 structure passed to
vkGetPhysicalDeviceProperties2, it is filled in with each
corresponding implementation-dependent property.
If VkPhysicalDeviceSubgroupProperties::supportedOperations
includes VK_SUBGROUP_FEATURE_QUAD_BIT,
minSubgroupSize must be greater than or equal to 4.
Valid Usage (Implicit)
VUID-VkPhysicalDeviceSubgroupSizeControlProperties-sType-sType
sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES