| // Copyright 2017-2021 The Khronos Group, Inc. |
| // |
| // SPDX-License-Identifier: CC-BY-4.0 |
| |
| include::{generated}/meta/{refprefix}VK_KHR_vulkan_memory_model.txt[] |
| |
| === Other Extension Metadata |
| |
| *Last Modified Date*:: |
| 2018-12-10 |
| *IP Status*:: |
| No known IP claims. |
| *Interactions and External Dependencies*:: |
| - Promoted to Vulkan 1.2 Core |
| - This extension requires |
| {spirv}/KHR/SPV_KHR_vulkan_memory_model.html[`SPV_KHR_vulkan_memory_model`] |
| *Contributors*:: |
| - Jeff Bolz, NVIDIA |
| - Alan Baker, Google |
| - Tobias Hector, AMD |
| - David Neto, Google |
| - Robert Simpson, Qualcomm Technologies, Inc. |
| - Brian Sumner, AMD |
| |
| === Description |
| |
| The `VK_KHR_vulkan_memory_model` extension allows use of the |
| <<memory-model,Vulkan Memory Model>>, which formally defines how to |
| synchronize memory accesses to the same memory locations performed by |
| multiple shader invocations. |
| |
| [NOTE] |
| .Note |
| ==== |
| Version 3 of the spec added a member |
| (pname:vulkanMemoryModelAvailabilityVisibilityChains) to |
| slink:VkPhysicalDeviceVulkanMemoryModelFeaturesKHR, which is an incompatible |
| change from version 2. |
| ==== |
| |
| === Promotion to Vulkan 1.2 |
| |
| All functionality in this extension is included in core Vulkan 1.2, with the |
| KHR suffix omitted. |
| However, if Vulkan 1.2 is supported and this extension is not, the |
| code:vulkanMemoryModel capability is optional. |
| The original type, enum and command names are still available as aliases of |
| the core functionality. |
| |
| include::{generated}/interfaces/VK_KHR_vulkan_memory_model.txt[] |
| |
| === New SPIR-V Capabilities |
| |
| * <<spirvenv-capabilities-table-VulkanMemoryModel,code:VulkanMemoryModelKHR>> |
| |
| === Version History |
| |
| * Revision 1, 2018-06-24 (Jeff Bolz) |
| - Initial draft |
| * Revision 3, 2018-12-10 (Jeff Bolz) |
| - Add vulkanMemoryModelAvailabilityVisibilityChains member to the |
| VkPhysicalDeviceVulkanMemoryModelFeaturesKHR structure. |