# VkPhysicalDeviceVariablePointersFeatures(3) Manual Page

## Name

VkPhysicalDeviceVariablePointersFeatures - Structure describing variable pointers features that can be supported by an implementation

## C Specification

The `VkPhysicalDeviceVariablePointersFeatures` structure is defined as:

    typedef struct VkPhysicalDeviceVariablePointersFeatures {
        VkStructureType    sType;
        void*              pNext;
        VkBool32           variablePointersStorageBuffer;
        VkBool32           variablePointers;
    } VkPhysicalDeviceVariablePointersFeatures;

or the equivalent

    typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointersFeaturesKHR;

## Members

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

## Description

- `variablePointersStorageBuffer` specifies whether the implementation supports the SPIR-V `VariablePointersStorageBuffer` capability. When this feature is not enabled, shader modules must not declare the `SPV_KHR_variable_pointers` extension or the `VariablePointersStorageBuffer` capability.

- `variablePointers` specifies whether the implementation supports the SPIR-V `VariablePointers` capability. When this feature is not enabled, shader modules must not declare the `VariablePointers` capability.

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

Valid Usage

- If `variablePointers` is enabled then `variablePointersStorageBuffer` must also be enabled.

Valid Usage (Implicit)

- `sType` must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES`

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