# VkPhysicalDeviceVulkanMemoryModelFeatures(3) Manual Page

## Name

VkPhysicalDeviceVulkanMemoryModelFeatures - Structure describing features supported by the memory model

## C Specification

To query memory model features additionally supported call vkGetPhysicalDeviceFeatures2 with a `VkPhysicalDeviceVulkanMemoryModelFeatures` structure included in the `pNext` chain of its `pFeatures` parameter. The `VkPhysicalDeviceVulkanMemoryModelFeatures` structure can also be included in the `pNext` chain of a VkDeviceCreateInfo structure, in which case it controls which additional features are enabled in the device.

The VkPhysicalDeviceVulkanMemoryModelFeatures structure is defined as:

    typedef struct VkPhysicalDeviceVulkanMemoryModelFeatures {
        VkStructureType    sType;
        void*              pNext;
        VkBool32           vulkanMemoryModel;
        VkBool32           vulkanMemoryModelDeviceScope;
        VkBool32           vulkanMemoryModelAvailabilityVisibilityChains;
    } VkPhysicalDeviceVulkanMemoryModelFeatures;

or the equivalent

    typedef VkPhysicalDeviceVulkanMemoryModelFeatures VkPhysicalDeviceVulkanMemoryModelFeaturesKHR;

## Members

- `sType` is the type of this structure.

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

## Description

- `vulkanMemoryModel` indicates whether the Vulkan Memory Model is supported, as defined in Vulkan Memory Model. This also indicates whether shader modules can declare the `VulkanMemoryModel` capability.

- `vulkanMemoryModelDeviceScope` indicates whether the Vulkan Memory Model can use `Device` scope synchronization. This also indicates whether shader modules can declare the `VulkanMemoryModelDeviceScope` capability.

- `vulkanMemoryModelAvailabilityVisibilityChains` indicates whether the Vulkan Memory Model can use availability and visibility chains with more than one element.

Valid Usage (Implicit)

- `sType` must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_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.