C Specification

The VkPhysicalDeviceSubgroupProperties structure is defined as:

typedef struct VkPhysicalDeviceSubgroupProperties {
VkStructureType           sType;
void*                     pNext;
uint32_t                  subgroupSize;
VkSubgroupFeatureFlags    supportedOperations;
} VkPhysicalDeviceSubgroupProperties;

Members

The members of the VkPhysicalDeviceSubgroupProperties structure describe the following implementation-dependent limits:

Description

• sType is the type of this structure.

• pNext is NULL or a pointer to an extension-specific structure.

• subgroupSize is the number of invocations in each subgroup. This will match any SubgroupSize decorated variable used in any shader module created on this device. subgroupSize is at least 1 if any of the physical device’s queues support VK_QUEUE_GRAPHICS_BIT or VK_QUEUE_COMPUTE_BIT.

• supportedStages is a bitfield of VkShaderStageFlagBits describing the shader stages that subgroup operations are supported in. supportedStages will have the VK_SHADER_STAGE_COMPUTE_BIT bit set if any of the physical device’s queues support VK_QUEUE_COMPUTE_BIT.

• supportedOperations is a bitmask of VkSubgroupFeatureFlagBits specifying the sets of subgroup operations supported on this device. supportedOperations will have the VK_SUBGROUP_FEATURE_BASIC_BIT bit set if any of the physical device’s queues support VK_QUEUE_GRAPHICS_BIT or VK_QUEUE_COMPUTE_BIT.

• quadOperationsInAllStages is a boolean that specifies whether quad subgroup 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 VkPhysicalDeviceProperties2, it is filled with the implementation-dependent limits.

Valid Usage (Implicit)
• sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES