C Specification
The VkPhysicalDeviceSubgroupProperties structure is defined as:
// Provided by VK_VERSION_1_1
typedef struct VkPhysicalDeviceSubgroupProperties {
VkStructureType sType;
void* pNext;
uint32_t subgroupSize;
VkShaderStageFlags supportedStages;
VkSubgroupFeatureFlags supportedOperations;
VkBool32 quadOperationsInAllStages;
} VkPhysicalDeviceSubgroupProperties;
Members
-
sTypeis a VkStructureType value identifying this structure. -
pNextisNULLor a pointer to a structure extending this structure.
Description
-
subgroupSizeis the default number of invocations in each subgroup.subgroupSizeis at least 1 if any of the physical device’s queues supportVK_QUEUE_GRAPHICS_BITorVK_QUEUE_COMPUTE_BIT.subgroupSizeis a power-of-two. -
supportedStagesis a bitfield of VkShaderStageFlagBits describing the shader stages that group operations with subgroup scope are supported in.supportedStageswill have theVK_SHADER_STAGE_COMPUTE_BITbit set if any of the physical device’s queues supportVK_QUEUE_COMPUTE_BIT. -
supportedOperationsis a bitmask of VkSubgroupFeatureFlagBits specifying the sets of group operations with subgroup scope supported on this device.supportedOperationswill have theVK_SUBGROUP_FEATURE_BASIC_BITbit set if any of the physical device’s queues supportVK_QUEUE_GRAPHICS_BITorVK_QUEUE_COMPUTE_BIT. -
quadOperationsInAllStagesis a boolean specifying whether quad group operations are available in all stages, or are restricted to fragment and compute stages.
If the VkPhysicalDeviceSubgroupProperties 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 supportedOperations includes VK_SUBGROUP_FEATURE_QUAD_BIT,
or the shaderSubgroupUniformControlFlow feature is enabled,
subgroupSize must be greater than or equal to 4.
If the shaderQuadControl feature is
supported, supportedOperations must include VK_SUBGROUP_FEATURE_QUAD_BIT.
If VK_KHR_shader_subgroup_rotate is supported, and the implementation
advertises support with a VkExtensionProperties::specVersion
greater than or equal to 2, and the shaderSubgroupRotate feature is supported,
VK_SUBGROUP_FEATURE_ROTATE_BIT must be returned in
VkPhysicalDeviceVulkan11Properties::subgroupSupportedOperations
and
VkPhysicalDeviceSubgroupProperties::supportedOperations.
If VK_KHR_shader_subgroup_rotate is supported, and the implementation
advertises support with a VkExtensionProperties::specVersion
greater than or equal to 2, and the
shaderSubgroupRotateClustered feature is supported,
VK_SUBGROUP_FEATURE_ROTATE_CLUSTERED_BIT must be returned in
VkPhysicalDeviceVulkan11Properties::subgroupSupportedOperations
and
VkPhysicalDeviceSubgroupProperties::supportedOperations.
If Vulkan 1.4 is supported, VK_SUBGROUP_FEATURE_ROTATE_BIT and
VK_SUBGROUP_FEATURE_ROTATE_CLUSTERED_BIT must be returned in
VkPhysicalDeviceSubgroupProperties::supportedOperations and
VkPhysicalDeviceVulkan11Properties::subgroupSupportedOperations
|
Note
|
|
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.