summaryrefslogtreecommitdiff
path: root/appendices/VK_KHR_vulkan_memory_model.adoc
blob: 4c3824c6ce0c55793a64702ec3c7f588d74e4052 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
// Copyright 2017-2023 The Khronos Group Inc.
//
// SPDX-License-Identifier: CC-BY-4.0

include::{generated}/meta/{refprefix}VK_KHR_vulkan_memory_model.adoc[]

=== 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 apiext:VK_KHR_vulkan_memory_model extension allows use of the features
guarded by the code:VulkanMemoryModel, code:VulkanMemoryModelDeviceScope,
and code:VulkanMemoryModelAvailabilityVisibilityChains capabilities in
shader modules.
The <<memory-model,Vulkan Memory Model>> 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.adoc[]

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