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

  • sType is a VkStructureType value identifying this structure.

  • pNext is NULL or a pointer to a structure extending this structure.

Description

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

VK_SUBGROUP_FEATURE_ROTATE_BIT and VK_SUBGROUP_FEATURE_ROTATE_CLUSTERED_BIT were added in version 2 of the VK_KHR_shader_subgroup_rotate extension, after the initial release, so there are implementations that do not advertise these bits. Applications should use the shaderSubgroupRotate and shaderSubgroupRotateClustered features to determine and enable support. These bits are advertised here for consistency and for future dependencies.

If the shaderSubgroupPartitioned feature is supported, supportedOperations must include VK_SUBGROUP_FEATURE_PARTITIONED_BIT_EXT.

Valid Usage (Implicit)

See Also

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.

Copyright 2014-2026 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0