# VkPhysicalDeviceSubgroupSizeControlFeaturesEXT(3) Manual Page

## Name

VkPhysicalDeviceSubgroupSizeControlFeaturesEXT - Structure describing the subgroup size control features that can be supported by an implementation

## C Specification

The `VkPhysicalDeviceSubgroupSizeControlFeaturesEXT` structure is defined as:

    typedef struct VkPhysicalDeviceSubgroupSizeControlFeaturesEXT {
        VkStructureType    sType;
        void*              pNext;
        VkBool32           subgroupSizeControl;
        VkBool32           computeFullSubgroups;
    } VkPhysicalDeviceSubgroupSizeControlFeaturesEXT;

## Members

The members of the `VkPhysicalDeviceSubgroupSizeControlFeaturesEXT` structure describe the following features:

## Description

- `subgroupSizeControl` indicates whether the implementation supports controlling shader subgroup sizes via the `VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT` flag and the VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT structure.

- `computeFullSubgroups` indicates whether the implementation supports requiring full subgroups in compute shaders via the `VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT` flag.

If the `VkPhysicalDeviceSubgroupSizeControlFeaturesEXT` structure is included in the `pNext` chain of VkPhysicalDeviceFeatures2, it is filled with values indicating whether the feature is supported. `VkPhysicalDeviceSubgroupSizeControlFeaturesEXT` can also be included in the `pNext` chain of VkDeviceCreateInfo to enable the feature.

| Note The `VkPhysicalDeviceSubgroupSizeControlFeaturesEXT` structure was added in version 2 of the `https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#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.

Valid Usage (Implicit)

- `sType` must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT`

## See Also

`VkBool32`, VkStructureType

## 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

Copyright (c) 2014-2020 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.