summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJon Leech <oddhack@sonic.net>2024-02-16 02:10:34 -0800
committerJon Leech <oddhack@sonic.net>2024-02-16 02:10:34 -0800
commit2e3aca8d6a3a6d52a9d904d0511a1c5e57a09e0f (patch)
tree364aacd34f5e7164fae8228dbb0a3802c74b97f3
parent0c355559d6ca3d92edbaafb27347b0cbe34f3b2f (diff)
downloadgfxstream-protocols-2e3aca8d6a3a6d52a9d904d0511a1c5e57a09e0f.tar.gz
Change log for February 16, 2024 Vulkan 1.3.278 spec update:
Public Issues * Restore orphaned vkQueuePresentKHR text to proper locations (public issue 2008). * Make ename:VK_ERROR_INCOMPATIBLE_SHADER_BINARY_EXT into a typo alias of ename:VK_INCOMPATIBLE_SHADER_BINARY_EXT, since this is actually a success code, not an error code (public issue 2295). Internal Issues * Remove VK_INCOMPLETE success code in vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI, and tag pMaxWorkgroupSize as a pointer to a single returned structure, not an array (internal issue 3715). * Add missing `len` XML attributes for structure <member> tags which are static arrays, but may not use the entire array (internal issue 3743). * Fix VkPhysicalDeviceSurfaceInfo2KHR::surface VU 07919 and set `noautovalidity` on corresponding XML member (internal MR 6429). * Move sections in generated extension appendices down one heading level in spec body (internal MR 6436). * Remove `returnedonly` XML attribute from VkPhysicalDeviceSurfaceInfo2KHR (internal MR 6436). * Add `returnedonly` XML attribute to VkLatencyTimingsFrameReportNV (internal MR 6463) and slink:VkPerformanceValueINTEL (internal MR 6461). * Fix typo in vkCopyAccelerationStructureKHR VU 03728 (internal MR 6457). * Remove invalid subpassLoadMS operation from description of vkCmdSubpassShadingHUAWEI (internal MR 6454). * Remove "`equal to`" clause from VU 09515 (internal MR 6458). * Rearrange some function markup and add missing parameter descriptions for vkCmdSetPerformanceStreamMarkerINTEL (internal issue 3785). * Remove non-sensical VkGraphicsPipelineCreateInfo VUs 07717 and 07719 (internal MR 6468). * Fix various 'a'/'an' typos (internal MR 6470). New Extensions * VK_EXT_map_memory_placed * VK_NV_shader_atomic_float16_vector
-rw-r--r--.mailmap2
-rw-r--r--ChangeLog.adoc43
-rw-r--r--Makefile2
-rw-r--r--appendices/VK_EXT_map_memory_placed.adoc7
-rw-r--r--appendices/VK_EXT_shader_subgroup_ballot.adoc2
-rw-r--r--appendices/VK_INTEL_performance_query.adoc2
-rw-r--r--appendices/VK_NV_shader_atomic_float16_vector.adoc39
-rw-r--r--appendices/spirvenv.adoc100
-rw-r--r--chapters/VK_INTEL_performance_query/queries.adoc6
-rw-r--r--chapters/VK_KHR_surface/wsi.adoc3
-rw-r--r--chapters/VK_KHR_swapchain/wsi.adoc229
-rw-r--r--chapters/VK_MVK_ios_surface/platformCreateSurface_ios.adoc20
-rw-r--r--chapters/VK_MVK_macos_surface/platformCreateSurface_macos.adoc20
-rw-r--r--chapters/VK_NV_low_latency2/low_latency2.adoc4
-rw-r--r--chapters/VK_NV_optical_flow/optical_flow.adoc11
-rw-r--r--chapters/accelstructures.adoc3
-rw-r--r--chapters/cmdbuffers.adoc6
-rw-r--r--chapters/commonvalidity/draw_common.adoc8
-rw-r--r--chapters/descriptorsets.adoc6
-rw-r--r--chapters/devsandqueues.adoc3
-rw-r--r--chapters/dispatch.adoc3
-rw-r--r--chapters/features.adoc47
-rw-r--r--chapters/formats.adoc64
-rw-r--r--chapters/fragops.adoc2
-rw-r--r--chapters/fundamentals.adoc18
-rw-r--r--chapters/interfaces.adoc4
-rw-r--r--chapters/limits.adoc11
-rw-r--r--chapters/memory.adoc94
-rwxr-xr-xchapters/pipelines.adoc13
-rw-r--r--chapters/raytraversal.adoc2
-rw-r--r--chapters/renderpass.adoc2
-rw-r--r--chapters/resources.adoc15
-rw-r--r--chapters/shaders.adoc11
-rw-r--r--chapters/synchronization.adoc2
-rw-r--r--chapters/textures.adoc6
-rw-r--r--chapters/videocoding.adoc4
-rw-r--r--config/attribs.adoc1
-rw-r--r--config/extension-highlighter/extension.rb4
-rw-r--r--proposals/VK_EXT_dynamic_rendering_unused_attachments.adoc4
-rw-r--r--proposals/VK_EXT_map_memory_placed.adoc5
-rw-r--r--proposals/VK_EXT_shader_object.adoc17
-rw-r--r--proposals/VK_EXT_subpass_merge_feedback.adoc2
-rw-r--r--proposals/VK_HUAWEI_cluster_culling_shader.adoc2
-rw-r--r--proposals/VK_KHR_dynamic_rendering_local_read.adoc2
-rw-r--r--proposals/VK_KHR_fragment_shading_rate.adoc4
-rw-r--r--proposals/VK_KHR_shader_maximal_reconvergence.adoc4
-rw-r--r--proposals/VK_QCOM_image_processing.adoc2
-rw-r--r--registry.adoc69
-rw-r--r--scripts/doctransformer.py2
-rw-r--r--scripts/extensionmetadocgenerator.py12
-rwxr-xr-xscripts/genvk.py4
-rwxr-xr-xscripts/indexExt.py2
-rw-r--r--scripts/interfacedocgenerator.py2
-rwxr-xr-xscripts/parse_dependency.py4
-rwxr-xr-xscripts/validitygenerator.py4
-rwxr-xr-xscripts/xml_consistency.py1
-rw-r--r--xml/registry.rnc2
-rwxr-xr-xxml/vk.xml270
58 files changed, 731 insertions, 502 deletions
diff --git a/.mailmap b/.mailmap
index ab7e5802..050c3adb 100644
--- a/.mailmap
+++ b/.mailmap
@@ -4,4 +4,6 @@
Faith Ekstrand <faith.ekstrand@collabora.com> <jason@jlekstrand.net>
Faith Ekstrand <faith.ekstrand@collabora.com> <jason.ekstrand@intel.com>
Faith Ekstrand <faith.ekstrand@collabora.com> <jason.ekstrand@collabora.com>
+Lina Versace <linyaa@google.com> <chad.versace@intel.com>
+Lina Versace <linyaa@google.com> <chadversary@google.com>
Rylie Pavlik <rylie.pavlik@collabora.com> <ryan.pavlik@collabora.com>
diff --git a/ChangeLog.adoc b/ChangeLog.adoc
index 769918f9..61cbaac0 100644
--- a/ChangeLog.adoc
+++ b/ChangeLog.adoc
@@ -14,6 +14,49 @@ appears frequently in the change log.
-----------------------------------------------------
+Change log for February 16, 2024 Vulkan 1.3.278 spec update:
+
+Public Issues
+
+ * Restore orphaned vkQueuePresentKHR text to proper locations (public
+ issue 2008).
+ * Make ename:VK_ERROR_INCOMPATIBLE_SHADER_BINARY_EXT into a typo alias of
+ ename:VK_INCOMPATIBLE_SHADER_BINARY_EXT, since this is actually a
+ success code, not an error code (public issue 2295).
+
+Internal Issues
+
+ * Remove VK_INCOMPLETE success code in
+ vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI, and tag
+ pMaxWorkgroupSize as a pointer to a single returned structure, not an
+ array (internal issue 3715).
+ * Add missing `len` XML attributes for structure <member> tags which are
+ static arrays, but may not use the entire array (internal issue 3743).
+ * Fix VkPhysicalDeviceSurfaceInfo2KHR::surface VU 07919 and set
+ `noautovalidity` on corresponding XML member (internal MR 6429).
+ * Move sections in generated extension appendices down one heading level
+ in spec body (internal MR 6436).
+ * Remove `returnedonly` XML attribute from VkPhysicalDeviceSurfaceInfo2KHR
+ (internal MR 6436).
+ * Add `returnedonly` XML attribute to VkLatencyTimingsFrameReportNV
+ (internal MR 6463) and slink:VkPerformanceValueINTEL (internal MR 6461).
+ * Fix typo in vkCopyAccelerationStructureKHR VU 03728 (internal MR 6457).
+ * Remove invalid subpassLoadMS operation from description of
+ vkCmdSubpassShadingHUAWEI (internal MR 6454).
+ * Remove "`equal to`" clause from VU 09515 (internal MR 6458).
+ * Rearrange some function markup and add missing parameter descriptions
+ for vkCmdSetPerformanceStreamMarkerINTEL (internal issue 3785).
+ * Remove non-sensical VkGraphicsPipelineCreateInfo VUs 07717 and 07719
+ (internal MR 6468).
+ * Fix various 'a'/'an' typos (internal MR 6470).
+
+New Extensions
+
+ * VK_EXT_map_memory_placed
+ * VK_NV_shader_atomic_float16_vector
+
+-----------------------------------------------------
+
Change log for February 1, 2024 Vulkan 1.3.277 spec update:
Internal Issues
diff --git a/Makefile b/Makefile
index 758e3997..2bbd0b29 100644
--- a/Makefile
+++ b/Makefile
@@ -137,7 +137,7 @@ VERBOSE =
# ADOCOPTS options for asciidoc->HTML5 output
NOTEOPTS = -a editing-notes -a implementation-guide
-PATCHVERSION = 277
+PATCHVERSION = 278
BASEOPTS =
ifneq (,$(findstring VKSC_VERSION_1_0,$(VERSIONS)))
diff --git a/appendices/VK_EXT_map_memory_placed.adoc b/appendices/VK_EXT_map_memory_placed.adoc
index 5108d732..27cb5fc1 100644
--- a/appendices/VK_EXT_map_memory_placed.adoc
+++ b/appendices/VK_EXT_map_memory_placed.adoc
@@ -1,5 +1,4 @@
-// Copyright 2022-2023 The Khronos Group Inc.
-//
+// Copyright 2022-2024 The Khronos Group Inc.
// SPDX-License-Identifier: CC-BY-4.0
include::{generated}/meta/{refprefix}VK_EXT_map_memory_placed.adoc[]
@@ -22,8 +21,8 @@ include::{generated}/meta/{refprefix}VK_EXT_map_memory_placed.adoc[]
=== Description
-This extension allows a client to request that flink:vkMapMemory2KHR
-attempt to place the memory map at a particular virtual address.
+This extension allows a client to request that flink:vkMapMemory2KHR attempt
+to place the memory map at a particular virtual address.
include::{generated}/interfaces/VK_EXT_map_memory_placed.adoc[]
diff --git a/appendices/VK_EXT_shader_subgroup_ballot.adoc b/appendices/VK_EXT_shader_subgroup_ballot.adoc
index 3982a866..38507f9e 100644
--- a/appendices/VK_EXT_shader_subgroup_ballot.adoc
+++ b/appendices/VK_EXT_shader_subgroup_ballot.adoc
@@ -26,7 +26,7 @@ This extension adds support for the following SPIR-V extension in Vulkan:
This extension provides the ability for a group of invocations, which
execute in parallel, to do limited forms of cross-invocation communication
-via a group broadcast of a invocation value, or broadcast of a bitarray
+via a group broadcast of an invocation value, or broadcast of a bit array
representing a predicate value from each invocation in the group.
This extension provides access to a number of additional built-in shader
diff --git a/appendices/VK_INTEL_performance_query.adoc b/appendices/VK_INTEL_performance_query.adoc
index b99a4332..595b0a4a 100644
--- a/appendices/VK_INTEL_performance_query.adoc
+++ b/appendices/VK_INTEL_performance_query.adoc
@@ -17,7 +17,7 @@ include::{generated}/meta/{refprefix}VK_INTEL_performance_query.adoc[]
=== Description
This extension allows an application to capture performance data to be
-interpreted by a external application or library.
+interpreted by an external application or library.
Such a library is available at : https://github.com/intel/metrics-discovery
diff --git a/appendices/VK_NV_shader_atomic_float16_vector.adoc b/appendices/VK_NV_shader_atomic_float16_vector.adoc
new file mode 100644
index 00000000..f6662082
--- /dev/null
+++ b/appendices/VK_NV_shader_atomic_float16_vector.adoc
@@ -0,0 +1,39 @@
+// Copyright 2024 The Khronos Group Inc.
+//
+// SPDX-License-Identifier: CC-BY-4.0
+
+include::{generated}/meta/{refprefix}VK_NV_shader_atomic_float16_vector.adoc[]
+
+=== Other Extension Metadata
+
+*Last Modified Date*::
+ 2024-02-03
+*IP Status*::
+ No known IP claims.
+*Interactions and External Dependencies*::
+ - This extension provides API support for
+ https://registry.khronos.org/OpenGL/extensions/NV/NV_shader_atomic_fp16_vector.txt[`GL_NV_shader_atomic_fp16_vector`]
+*Contributors*::
+ - Jeff Bolz, NVIDIA
+
+=== Description
+
+This extension allows a shader to perform atomic add, min, max, and exchange
+operations on 2- and 4-component vectors of float16.
+Buffer, workgroup, and image storage classes are all supported.
+
+include::{generated}/interfaces/VK_NV_shader_atomic_float16_vector.adoc[]
+
+=== Issues
+
+None.
+
+=== New SPIR-V Capabilities
+
+ * <<spirvenv-capabilities-table-AtomicFloat16VectorNV,
+ code:AtomicFloat16VectorNV>>
+
+=== Version History
+
+ * Revision 1, 2024-02-03 (Jeff Bolz)
+ ** Internal revisions
diff --git a/appendices/spirvenv.adoc b/appendices/spirvenv.adoc
index b70e155d..4de00148 100644
--- a/appendices/spirvenv.adoc
+++ b/appendices/spirvenv.adoc
@@ -868,44 +868,7 @@ ifdef::VK_KHR_shader_atomic_int64[]
must: be enabled for 64-bit integer atomic operations to be supported on
a _Pointer_ with a {StorageClass} of code:Workgroup
endif::VK_KHR_shader_atomic_int64[]
-ifdef::VK_EXT_shader_atomic_float[]
-ifndef::VK_EXT_shader_atomic_float2[]
- * [[VUID-{refpage}-None-06280]]
- <<features-shaderBufferFloat32Atomics,
- pname:shaderBufferFloat32Atomics>>, or
- <<features-shaderBufferFloat32AtomicAdd,
- pname:shaderBufferFloat32AtomicAdd>>, or
- <<features-shaderBufferFloat64Atomics,
- pname:shaderBufferFloat64Atomics>>, or
- <<features-shaderBufferFloat64AtomicAdd,
- pname:shaderBufferFloat64AtomicAdd>> must: be enabled for floating-point
- atomic operations to be supported on a _Pointer_ with a {StorageClass}
- of code:StorageBuffer
- * [[VUID-{refpage}-None-06281]]
- <<features-shaderSharedFloat32Atomics,
- pname:shaderSharedFloat32Atomics>>, or
- <<features-shaderSharedFloat32AtomicAdd,
- pname:shaderSharedFloat32AtomicAdd>>, or
- <<features-shaderSharedFloat64Atomics,
- pname:shaderSharedFloat64Atomics>>, or
- <<features-shaderSharedFloat64AtomicAdd,
- pname:shaderSharedFloat64AtomicAdd>> must: be enabled for floating-point
- atomic operations to be supported on a _Pointer_ with a {StorageClass}
- of code:Workgroup
- * [[VUID-{refpage}-None-06282]]
- <<features-shaderImageFloat32Atomics, pname:shaderImageFloat32Atomics>>
- or <<features-shaderImageFloat32AtomicAdd,
- pname:shaderImageFloat32AtomicAdd>> must: be enabled for 32-bit
- floating-point atomic operations to be supported on a _Pointer_ with a
- {StorageClass} of code:Image
- * [[VUID-{refpage}-None-06283]]
- <<features-sparseImageFloat32Atomics, pname:sparseImageFloat32Atomics>>
- or <<features-sparseImageFloat32AtomicAdd,
- pname:sparseImageFloat32AtomicAdd>> must: be enabled for 32-bit
- floating-point atomics to be supported on sparse images
-endif::VK_EXT_shader_atomic_float2[]
-endif::VK_EXT_shader_atomic_float[]
-ifdef::VK_EXT_shader_atomic_float2[]
+ifdef::VK_EXT_shader_atomic_float,VK_EXT_shader_atomic_float2[]
* [[VUID-{refpage}-None-06284]]
<<features-shaderBufferFloat32Atomics,
pname:shaderBufferFloat32Atomics>>, or
@@ -914,8 +877,9 @@ ifdef::VK_EXT_shader_atomic_float2[]
<<features-shaderBufferFloat64Atomics,
pname:shaderBufferFloat64Atomics>>, or
<<features-shaderBufferFloat64AtomicAdd,
- pname:shaderBufferFloat64AtomicAdd>>, or
- <<features-shaderBufferFloat16AtomicMinMax,
+ pname:shaderBufferFloat64AtomicAdd>>,
+ifdef::VK_EXT_shader_atomic_float2[]
+ or <<features-shaderBufferFloat16AtomicMinMax,
pname:shaderBufferFloat16Atomics>>, or
<<features-shaderBufferFloat16AtomicMinMax,
pname:shaderBufferFloat16AtomicAdd>>, or
@@ -924,9 +888,14 @@ ifdef::VK_EXT_shader_atomic_float2[]
<<features-shaderBufferFloat32AtomicMinMax,
pname:shaderBufferFloat32AtomicMinMax>>, or
<<features-shaderBufferFloat64AtomicMinMax,
- pname:shaderBufferFloat64AtomicMinMax>> must: be enabled for
- floating-point atomic operations to be supported on a _Pointer_ with a
- {StorageClass} of code:StorageBuffer
+ pname:shaderBufferFloat64AtomicMinMax>>,
+endif::VK_EXT_shader_atomic_float2[]
+ifdef::VK_NV_shader_atomic_float16_vector[]
+ or <<features-shaderFloat16VectorAtomics,
+ pname:shaderFloat16VectorAtomics>>
+endif::VK_NV_shader_atomic_float16_vector[]
+ must: be enabled for floating-point atomic operations to be supported on
+ a _Pointer_ with a {StorageClass} of code:StorageBuffer
* [[VUID-{refpage}-None-06285]]
<<features-shaderSharedFloat32Atomics,
pname:shaderSharedFloat32Atomics>>, or
@@ -935,8 +904,9 @@ ifdef::VK_EXT_shader_atomic_float2[]
<<features-shaderSharedFloat64Atomics,
pname:shaderSharedFloat64Atomics>>, or
<<features-shaderSharedFloat64AtomicAdd,
- pname:shaderSharedFloat64AtomicAdd>>, or
- <<features-shaderBufferFloat16AtomicMinMax,
+ pname:shaderSharedFloat64AtomicAdd>>,
+ifdef::VK_EXT_shader_atomic_float2[]
+ or <<features-shaderBufferFloat16AtomicMinMax,
pname:shaderSharedFloat16Atomics>>, or
<<features-shaderBufferFloat16AtomicMinMax,
pname:shaderSharedFloat16AtomicAdd>>, or
@@ -945,25 +915,35 @@ ifdef::VK_EXT_shader_atomic_float2[]
<<features-shaderSharedFloat32AtomicMinMax,
pname:shaderSharedFloat32AtomicMinMax>>, or
<<features-shaderSharedFloat64AtomicMinMax,
- pname:shaderSharedFloat64AtomicMinMax>> must: be enabled for
- floating-point atomic operations to be supported on a _Pointer_ with a
- {StorageClass} of code:Workgroup
+ pname:shaderSharedFloat64AtomicMinMax>>,
+endif::VK_EXT_shader_atomic_float2[]
+ifdef::VK_NV_shader_atomic_float16_vector[]
+ or <<features-shaderFloat16VectorAtomics,
+ pname:shaderFloat16VectorAtomics>>,
+endif::VK_NV_shader_atomic_float16_vector[]
+ must: be enabled for floating-point atomic operations to be supported on
+ a _Pointer_ with a {StorageClass} of code:Workgroup
* [[VUID-{refpage}-None-06286]]
<<features-shaderImageFloat32Atomics, pname:shaderImageFloat32Atomics>>,
or <<features-shaderImageFloat32AtomicAdd,
- pname:shaderImageFloat32AtomicAdd>>, or
- <<features-shaderImageFloat32AtomicMinMax,
- pname:shaderImageFloat32AtomicMinMax>> must: be enabled for 32-bit
- floating-point atomic operations to be supported on a _Pointer_ with a
- {StorageClass} of code:Image
+ pname:shaderImageFloat32AtomicAdd>>,
+ifdef::VK_EXT_shader_atomic_float2[]
+ or <<features-shaderImageFloat32AtomicMinMax,
+ pname:shaderImageFloat32AtomicMinMax>>,
+endif::VK_EXT_shader_atomic_float2[]
+ must: be enabled for 32-bit floating-point atomic operations to be
+ supported on a _Pointer_ with a {StorageClass} of code:Image
* [[VUID-{refpage}-None-06287]]
<<features-sparseImageFloat32Atomics, pname:sparseImageFloat32Atomics>>,
or <<features-sparseImageFloat32AtomicAdd,
- pname:sparseImageFloat32AtomicAdd>>, or
- <<features-sparseImageFloat32AtomicMinMax,
- pname:sparseImageFloat32AtomicMinMax>> must: be enabled for 32-bit
- floating-point atomics to be supported on sparse images
+ pname:sparseImageFloat32AtomicAdd>>,
+ifdef::VK_EXT_shader_atomic_float2[]
+ or <<features-sparseImageFloat32AtomicMinMax,
+ pname:sparseImageFloat32AtomicMinMax>>,
endif::VK_EXT_shader_atomic_float2[]
+ must: be enabled for 32-bit floating-point atomics to be supported on
+ sparse images
+endif::VK_EXT_shader_atomic_float,VK_EXT_shader_atomic_float2[]
ifdef::VK_EXT_shader_image_atomic_int64[]
* [[VUID-{refpage}-None-06288]]
<<features-shaderImageInt64Atomics, pname:shaderImageInt64Atomics>>
@@ -1520,6 +1500,12 @@ ifdef::VK_EXT_shader_atomic_float2[]
pname:shaderSharedFloat64AtomicMinMax>>, must: be enabled for 64-bit
floating point atomic operations
endif::VK_EXT_shader_atomic_float2[]
+ifdef::VK_NV_shader_atomic_float16_vector[]
+ * [[VUID-{refpage}-shaderFloat16VectorAtomics-09581]]
+ <<features-shaderFloat16VectorAtomics,pname:shaderFloat16VectorAtomics>>,
+ must: be enabled for 16-bit floating-point, 2- and 4-component vector
+ atomic operations to be supported
+endif::VK_NV_shader_atomic_float16_vector[]
* [[VUID-{refpage}-NonWritable-06340]]
If <<features-fragmentStoresAndAtomics, pname:fragmentStoresAndAtomics>>
is not enabled, then all storage image, storage texel buffer, and
diff --git a/chapters/VK_INTEL_performance_query/queries.adoc b/chapters/VK_INTEL_performance_query/queries.adoc
index 2781dc78..001804bf 100644
--- a/chapters/VK_INTEL_performance_query/queries.adoc
+++ b/chapters/VK_INTEL_performance_query/queries.adoc
@@ -212,6 +212,12 @@ back a particular draw call with a particular performance data item.
include::{generated}/api/protos/vkCmdSetPerformanceStreamMarkerINTEL.adoc[]
+ * pname:commandBuffer is a slink:VkCommandBuffer into which a stream
+ marker is added.
+ * pname:pMarkerInfo is a pointer to a
+ slink:VkPerformanceStreamMarkerInfoINTEL structure describing the marker
+ to insert.
+
include::{generated}/validity/protos/vkCmdSetPerformanceStreamMarkerINTEL.adoc[]
--
diff --git a/chapters/VK_KHR_surface/wsi.adoc b/chapters/VK_KHR_surface/wsi.adoc
index fba9dd8e..85331f9d 100644
--- a/chapters/VK_KHR_surface/wsi.adoc
+++ b/chapters/VK_KHR_surface/wsi.adoc
@@ -541,8 +541,9 @@ ifdef::VK_KHR_win32_surface+VK_EXT_full_screen_exclusive[]
included in the pname:pNext chain
endif::VK_KHR_win32_surface+VK_EXT_full_screen_exclusive[]
* [[VUID-VkPhysicalDeviceSurfaceInfo2KHR-surface-07919]]
+ If surface is not VK_NULL_HANDLE,
ifdef::VK_GOOGLE_surfaceless_query[]
- If the `apiext:VK_GOOGLE_surfaceless_query` extension is not enabled,
+ and the `apiext:VK_GOOGLE_surfaceless_query` extension is not enabled,
endif::VK_GOOGLE_surfaceless_query[]
pname:surface must: be a valid slink:VkSurfaceKHR handle
****
diff --git a/chapters/VK_KHR_swapchain/wsi.adoc b/chapters/VK_KHR_swapchain/wsi.adoc
index 2f937b8a..dd0b5b30 100644
--- a/chapters/VK_KHR_swapchain/wsi.adoc
+++ b/chapters/VK_KHR_swapchain/wsi.adoc
@@ -1305,39 +1305,45 @@ order that they were acquired - applications can arbitrarily present any
image that is currently acquired.
====
-include::{chapters}/commonvalidity/no_dynamic_allocations_common.adoc[]
+.Note
+[NOTE]
+====
+The origin of the native orientation of the surface coordinate system is not
+specified in the Vulkan specification; it depends on the platform.
+For most platforms the origin is by default upper-left, meaning the pixel of
+the presented slink:VkImage at coordinates [eq]#(0,0)# would appear at the
+upper left pixel of the platform surface (assuming
+ename:VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR, and the display standing the
+right way up).
+====
-.Valid Usage
-****
- * [[VUID-vkQueuePresentKHR-pSwapchains-01292]]
- Each element of pname:pSwapchains member of pname:pPresentInfo must: be
- a swapchain that is created for a surface for which presentation is
- supported from pname:queue as determined using a call to
- fname:vkGetPhysicalDeviceSurfaceSupportKHR
-ifdef::VK_KHR_display_swapchain[]
- * [[VUID-vkQueuePresentKHR-pSwapchains-01293]]
- If more than one member of pname:pSwapchains was created from a display
- surface, all display surfaces referenced that refer to the same display
- must: use the same display mode
-endif::VK_KHR_display_swapchain[]
- * [[VUID-vkQueuePresentKHR-pWaitSemaphores-01294]]
- When a semaphore wait operation referring to a binary semaphore defined
- by the elements of the pname:pWaitSemaphores member of
- pname:pPresentInfo executes on pname:queue, there must: be no other
- queues waiting on the same semaphore
-ifdef::VK_VERSION_1_2,VK_KHR_timeline_semaphore[]
- * [[VUID-vkQueuePresentKHR-pWaitSemaphores-03267]]
- All elements of the pname:pWaitSemaphores member of pname:pPresentInfo
- must: be created with a elink:VkSemaphoreType of
- ename:VK_SEMAPHORE_TYPE_BINARY
-endif::VK_VERSION_1_2,VK_KHR_timeline_semaphore[]
- * [[VUID-vkQueuePresentKHR-pWaitSemaphores-03268]]
- All elements of the pname:pWaitSemaphores member of pname:pPresentInfo
- must: reference a semaphore signal operation that has been submitted for
- execution and any <<synchronization-semaphores-signaling, semaphore
- signal operations>> on which it depends must: have also been submitted
- for execution
-****
+The result codes ename:VK_ERROR_OUT_OF_DATE_KHR and ename:VK_SUBOPTIMAL_KHR
+have the same meaning when returned by fname:vkQueuePresentKHR as they do
+when returned by fname:vkAcquireNextImageKHR.
+ifdef::VK_EXT_full_screen_exclusive[]
+If any pname:swapchain member of pname:pPresentInfo was created with
+ename:VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT,
+ename:VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT will be returned if that
+swapchain does not have exclusive full-screen access, possibly for
+implementation-specific reasons outside of the application's control.
+endif::VK_EXT_full_screen_exclusive[]
+If multiple swapchains are presented, the result code is determined by
+applying the following rules in order:
+
+ * If the device is lost, ename:VK_ERROR_DEVICE_LOST is returned.
+ * If any of the target surfaces are no longer available the error
+ ename:VK_ERROR_SURFACE_LOST_KHR is returned.
+ * If any of the presents would have a result of
+ ename:VK_ERROR_OUT_OF_DATE_KHR if issued separately then
+ ename:VK_ERROR_OUT_OF_DATE_KHR is returned.
+ifdef::VK_EXT_full_screen_exclusive[]
+ * If any of the presents would have a result of
+ ename:VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT if issued separately
+ then ename:VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT is returned.
+endif::VK_EXT_full_screen_exclusive[]
+ * If any of the presents would have a result of ename:VK_SUBOPTIMAL_KHR if
+ issued separately then ename:VK_SUBOPTIMAL_KHR is returned.
+ * Otherwise ename:VK_SUCCESS is returned.
Any writes to memory backing the images referenced by the
pname:pImageIndices and pname:pSwapchains members of pname:pPresentInfo,
@@ -1348,24 +1354,39 @@ This automatic visibility operation for an image happens-after the semaphore
signal operation, and happens-before the presentation engine accesses the
image.
+Presentation is a read-only operation that will not affect the content of
+the presentable images.
+Upon reacquiring the image and transitioning it away from the
+ename:VK_IMAGE_LAYOUT_PRESENT_SRC_KHR layout, the contents will be the same
+as they were prior to transitioning the image to the present source layout
+and presenting it.
+However, if a mechanism other than Vulkan is used to modify the platform
+window associated with the swapchain, the content of all presentable images
+in the swapchain becomes undefined:.
+
+Calls to fname:vkQueuePresentKHR may: block, but must: return in finite
+time.
+The processing of the presentation happens in issue order with other queue
+operations, but semaphores must: be used to ensure that prior rendering and
+other commands in the specified queue complete before the presentation
+begins.
+The presentation command itself does not delay processing of subsequent
+commands on the queue.
+However, presentation requests sent to a particular queue are always
+performed in order.
+Exact presentation timing is controlled by the semantics of the presentation
+engine and native platform in use.
+
+ifdef::VK_KHR_display_swapchain[]
+include::{chapters}/VK_KHR_display_swapchain/queue_present_interactions.adoc[]
+endif::VK_KHR_display_swapchain[]
+
Queueing an image for presentation defines a set of _queue operations_,
including waiting on the semaphores and submitting a presentation request to
the presentation engine.
However, the scope of this set of queue operations does not include the
actual processing of the image by the presentation engine.
-.Note
-[NOTE]
-====
-The origin of the native orientation of the surface coordinate system is not
-specified in the Vulkan specification; it depends on the platform.
-For most platforms the origin is by default upper-left, meaning the pixel of
-the presented slink:VkImage at coordinates [eq]#(0,0)# would appear at the
-upper left pixel of the platform surface (assuming
-ename:VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR, and the display standing the
-right way up).
-====
-
If fname:vkQueuePresentKHR fails to enqueue the corresponding set of queue
operations, it may: return ename:VK_ERROR_OUT_OF_HOST_MEMORY or
ename:VK_ERROR_OUT_OF_DEVICE_MEMORY.
@@ -1387,16 +1408,56 @@ considered to be enqueued and thus any semaphore wait operation specified in
slink:VkPresentInfoKHR will execute when the corresponding queue operation
is complete.
-Calls to fname:vkQueuePresentKHR may: block, but must: return in finite
-time.
+fname:vkQueuePresentKHR releases the acquisition of the images referenced by
+pname:imageIndices.
+The queue family corresponding to the queue fname:vkQueuePresentKHR is
+executed on must: have ownership of the presented images as defined in
+<<resources-sharing,Resource Sharing>>.
+fname:vkQueuePresentKHR does not alter the queue family ownership, but the
+presented images must: not be used again before they have been reacquired
+using fname:vkAcquireNextImageKHR.
-ifdef::VK_EXT_full_screen_exclusive[]
-If any pname:swapchain member of pname:pPresentInfo was created with
-ename:VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT,
-ename:VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT will be returned if that
-swapchain does not have exclusive full-screen access, possibly for
-implementation-specific reasons outside of the application's control.
-endif::VK_EXT_full_screen_exclusive[]
+[NOTE]
+.Note
+====
+The application can: continue to present any acquired images from a retired
+swapchain as long as the swapchain has not entered a state that causes
+flink:vkQueuePresentKHR to return ename:VK_ERROR_OUT_OF_DATE_KHR.
+====
+
+include::{chapters}/commonvalidity/no_dynamic_allocations_common.adoc[]
+
+.Valid Usage
+****
+ * [[VUID-vkQueuePresentKHR-pSwapchains-01292]]
+ Each element of pname:pSwapchains member of pname:pPresentInfo must: be
+ a swapchain that is created for a surface for which presentation is
+ supported from pname:queue as determined using a call to
+ fname:vkGetPhysicalDeviceSurfaceSupportKHR
+ifdef::VK_KHR_display_swapchain[]
+ * [[VUID-vkQueuePresentKHR-pSwapchains-01293]]
+ If more than one member of pname:pSwapchains was created from a display
+ surface, all display surfaces referenced that refer to the same display
+ must: use the same display mode
+endif::VK_KHR_display_swapchain[]
+ * [[VUID-vkQueuePresentKHR-pWaitSemaphores-01294]]
+ When a semaphore wait operation referring to a binary semaphore defined
+ by the elements of the pname:pWaitSemaphores member of
+ pname:pPresentInfo executes on pname:queue, there must: be no other
+ queues waiting on the same semaphore
+ifdef::VK_VERSION_1_2,VK_KHR_timeline_semaphore[]
+ * [[VUID-vkQueuePresentKHR-pWaitSemaphores-03267]]
+ All elements of the pname:pWaitSemaphores member of pname:pPresentInfo
+ must: be created with a elink:VkSemaphoreType of
+ ename:VK_SEMAPHORE_TYPE_BINARY
+endif::VK_VERSION_1_2,VK_KHR_timeline_semaphore[]
+ * [[VUID-vkQueuePresentKHR-pWaitSemaphores-03268]]
+ All elements of the pname:pWaitSemaphores member of pname:pPresentInfo
+ must: reference a semaphore signal operation that has been submitted for
+ execution and any <<synchronization-semaphores-signaling, semaphore
+ signal operations>> on which it depends must: have also been submitted
+ for execution
+****
include::{generated}/validity/protos/vkQueuePresentKHR.adoc[]
--
@@ -1609,68 +1670,6 @@ include::{chapters}/VK_EXT_swapchain_maintenance1/SwapchainPresentModeInfo.adoc[
include::{chapters}/VK_EXT_swapchain_maintenance1/SwapchainPresentFenceInfo.adoc[]
endif::VK_EXT_swapchain_maintenance1[]
-fname:vkQueuePresentKHR releases the acquisition of the images referenced by
-pname:imageIndices.
-The queue family corresponding to the queue fname:vkQueuePresentKHR is
-executed on must: have ownership of the presented images as defined in
-<<resources-sharing,Resource Sharing>>.
-fname:vkQueuePresentKHR does not alter the queue family ownership, but the
-presented images must: not be used again before they have been reacquired
-using fname:vkAcquireNextImageKHR.
-
-The processing of the presentation happens in issue order with other queue
-operations, but semaphores have to be used to ensure that prior rendering
-and other commands in the specified queue complete before the presentation
-begins.
-The presentation command itself does not delay processing of subsequent
-commands on the queue, however, presentation requests sent to a particular
-queue are always performed in order.
-Exact presentation timing is controlled by the semantics of the presentation
-engine and native platform in use.
-
-ifdef::VK_KHR_display_swapchain[]
-include::{chapters}/VK_KHR_display_swapchain/queue_present_interactions.adoc[]
-endif::VK_KHR_display_swapchain[]
-
-The result codes ename:VK_ERROR_OUT_OF_DATE_KHR and ename:VK_SUBOPTIMAL_KHR
-have the same meaning when returned by fname:vkQueuePresentKHR as they do
-when returned by fname:vkAcquireNextImageKHR.
-If multiple swapchains are presented, the result code is determined applying
-the following rules in order:
-
- * If the device is lost, ename:VK_ERROR_DEVICE_LOST is returned.
- * If any of the target surfaces are no longer available the error
- ename:VK_ERROR_SURFACE_LOST_KHR is returned.
- * If any of the presents would have a result of
- ename:VK_ERROR_OUT_OF_DATE_KHR if issued separately then
- ename:VK_ERROR_OUT_OF_DATE_KHR is returned.
-ifdef::VK_EXT_full_screen_exclusive[]
- * If any of the presents would have a result of
- ename:VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT if issued separately
- then ename:VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT is returned.
-endif::VK_EXT_full_screen_exclusive[]
- * If any of the presents would have a result of ename:VK_SUBOPTIMAL_KHR if
- issued separately then ename:VK_SUBOPTIMAL_KHR is returned.
- * Otherwise ename:VK_SUCCESS is returned.
-
-Presentation is a read-only operation that will not affect the content of
-the presentable images.
-Upon reacquiring the image and transitioning it away from the
-ename:VK_IMAGE_LAYOUT_PRESENT_SRC_KHR layout, the contents will be the same
-as they were prior to transitioning the image to the present source layout
-and presenting it.
-However, if a mechanism other than Vulkan is used to modify the platform
-window associated with the swapchain, the content of all presentable images
-in the swapchain becomes undefined:.
-
-[NOTE]
-.Note
-====
-The application can: continue to present any acquired images from a retired
-swapchain as long as the swapchain has not entered a state that causes
-flink:vkQueuePresentKHR to return ename:VK_ERROR_OUT_OF_DATE_KHR.
-====
-
ifdef::VK_EXT_swapchain_maintenance1[]
[open,refpage='vkReleaseSwapchainImagesEXT',desc='Release previously acquired but unused images',type='protos']
--
diff --git a/chapters/VK_MVK_ios_surface/platformCreateSurface_ios.adoc b/chapters/VK_MVK_ios_surface/platformCreateSurface_ios.adoc
index 827c2d76..4fb2348f 100644
--- a/chapters/VK_MVK_ios_surface/platformCreateSurface_ios.adoc
+++ b/chapters/VK_MVK_ios_surface/platformCreateSurface_ios.adoc
@@ -14,16 +14,6 @@ basetype:CAMetalLayer, call:
include::{generated}/api/protos/vkCreateIOSSurfaceMVK.adoc[]
-ifdef::VK_EXT_metal_surface[]
-[NOTE]
-.Note
-====
-The `vkCreateIOSSurfaceMVK` function is considered deprecated and has been
-superseded by flink:vkCreateMetalSurfaceEXT from the
-`apiext:VK_EXT_metal_surface` extension.
-====
-endif::VK_EXT_metal_surface[]
-
* pname:instance is the instance with which to associate the surface.
* pname:pCreateInfo is a pointer to a slink:VkIOSSurfaceCreateInfoMVK
structure containing parameters affecting the creation of the surface
@@ -34,6 +24,16 @@ endif::VK_EXT_metal_surface[]
* pname:pSurface is a pointer to a slink:VkSurfaceKHR handle in which the
created surface object is returned.
+ifdef::VK_EXT_metal_surface[]
+[NOTE]
+.Note
+====
+The `vkCreateIOSSurfaceMVK` function is considered deprecated and has been
+superseded by flink:vkCreateMetalSurfaceEXT from the
+`apiext:VK_EXT_metal_surface` extension.
+====
+endif::VK_EXT_metal_surface[]
+
include::{generated}/validity/protos/vkCreateIOSSurfaceMVK.adoc[]
--
diff --git a/chapters/VK_MVK_macos_surface/platformCreateSurface_macos.adoc b/chapters/VK_MVK_macos_surface/platformCreateSurface_macos.adoc
index a6fe1c25..67d7e6bd 100644
--- a/chapters/VK_MVK_macos_surface/platformCreateSurface_macos.adoc
+++ b/chapters/VK_MVK_macos_surface/platformCreateSurface_macos.adoc
@@ -14,16 +14,6 @@ basetype:CAMetalLayer, call:
include::{generated}/api/protos/vkCreateMacOSSurfaceMVK.adoc[]
-ifdef::VK_EXT_metal_surface[]
-[NOTE]
-.Note
-====
-The `vkCreateMacOSSurfaceMVK` function is considered deprecated and has been
-superseded by flink:vkCreateMetalSurfaceEXT from the
-`apiext:VK_EXT_metal_surface` extension.
-====
-endif::VK_EXT_metal_surface[]
-
* pname:instance is the instance with which to associate the surface.
* pname:pCreateInfo is a pointer to a slink:VkMacOSSurfaceCreateInfoMVK
structure containing parameters affecting the creation of the surface
@@ -34,6 +24,16 @@ endif::VK_EXT_metal_surface[]
* pname:pSurface is a pointer to a slink:VkSurfaceKHR handle in which the
created surface object is returned.
+ifdef::VK_EXT_metal_surface[]
+[NOTE]
+.Note
+====
+The `vkCreateMacOSSurfaceMVK` function is considered deprecated and has been
+superseded by flink:vkCreateMetalSurfaceEXT from the
+`apiext:VK_EXT_metal_surface` extension.
+====
+endif::VK_EXT_metal_surface[]
+
include::{generated}/validity/protos/vkCreateMacOSSurfaceMVK.adoc[]
--
diff --git a/chapters/VK_NV_low_latency2/low_latency2.adoc b/chapters/VK_NV_low_latency2/low_latency2.adoc
index 6adb63fe..be17b1ff 100644
--- a/chapters/VK_NV_low_latency2/low_latency2.adoc
+++ b/chapters/VK_NV_low_latency2/low_latency2.adoc
@@ -48,7 +48,7 @@ include::{generated}/api/structs/VkLatencySleepModeInfoNV.adoc[]
* pname:lowLatencyBoost allows an application to hint to the GPU to
increase performance to provide additional latency savings at a cost of
increased power consumption.
- * pname:minimumPresentIntervalUs is the microseconds between
+ * pname:minimumIntervalUs is the microseconds between
flink:vkQueuePresentKHR calls for a given swapchain that
flink:vkLatencySleepNV will enforce.
@@ -294,7 +294,7 @@ include::{generated}/api/structs/VkLatencySubmissionPresentIdNV.adoc[]
For any submission to be tracked with low latency mode pacing, it needs to
be associated with other submissions in a given present.
-Applications :must include the VkLatencySubmissionPresentIdNV in the pNext
+Applications must: include the VkLatencySubmissionPresentIdNV in the pNext
chain of flink:vkQueueSubmit to associate that submission with the
pname:presentId present for low latency mode.
diff --git a/chapters/VK_NV_optical_flow/optical_flow.adoc b/chapters/VK_NV_optical_flow/optical_flow.adoc
index a06bca40..820197d0 100644
--- a/chapters/VK_NV_optical_flow/optical_flow.adoc
+++ b/chapters/VK_NV_optical_flow/optical_flow.adoc
@@ -468,19 +468,20 @@ include::{generated}/api/enums/VkOpticalFlowSessionBindingPointNV.adoc[]
* ename:VK_OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV specifies the
binding point for the optional external hint flow vectors.
* ename:VK_OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV specifies the
- binding point for output flow vectors of default forward flow calcution.
+ binding point for output flow vectors of default forward flow
+ calculation.
* ename:VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV
specifies the binding point for the optional output flow vector map of
- optional backward flow calcution.
+ optional backward flow calculation.
* ename:VK_OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV specifies the
binding point for the optional output cost map of default forward flow
- calcution.
+ calculation.
* ename:VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV specifies
the binding point for the optional output cost map of optional backward
- flow calcution.
+ flow calculation.
* ename:VK_OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV specifies the
binding point for the optional global flow value of default forward flow
- calcution.
+ calculation.
--
diff --git a/chapters/accelstructures.adoc b/chapters/accelstructures.adoc
index 570186f1..42f9c110 100644
--- a/chapters/accelstructures.adoc
+++ b/chapters/accelstructures.adoc
@@ -2442,13 +2442,14 @@ flink:vkCmdCopyAccelerationStructureKHR but is executed by the host.
* [[VUID-vkCopyAccelerationStructureKHR-accelerationStructureHostCommands-03582]]
The <<features-accelerationStructureHostCommands,
sname:VkPhysicalDeviceAccelerationStructureFeaturesKHR::pname:accelerationStructureHostCommands>>
+ feature must: be enabled
include::{chapters}/commonvalidity/deferred_operations_common.adoc[]
* [[VUID-vkCopyAccelerationStructureKHR-buffer-03727]]
The pname:buffer used to create pname:pInfo->src must: be bound to
host-visible device memory
* [[VUID-vkCopyAccelerationStructureKHR-buffer-03728]]
The pname:buffer used to create pname:pInfo->dst must: be bound to
- host-visible device memory feature must: be enabled
+ host-visible device memory
ifdef::VK_KHR_device_group,VK_VERSION_1_1[]
* [[VUID-vkCopyAccelerationStructureKHR-buffer-03780]]
The pname:buffer used to create pname:pInfo->src must: be bound to
diff --git a/chapters/cmdbuffers.adoc b/chapters/cmdbuffers.adoc
index b9ea3e35..9d0fbd42 100644
--- a/chapters/cmdbuffers.adoc
+++ b/chapters/cmdbuffers.adoc
@@ -1742,7 +1742,7 @@ include::{chapters}/commonvalidity/no_dynamic_allocations_common.adoc[]
* [[VUID-vkQueueSubmit2-commandBuffer-03867]]
If a command recorded into the pname:commandBuffer member of any element
of the pname:pCommandBufferInfos member of any element of pname:pSubmits
- referenced an slink:VkEvent, that event must: not be referenced by a
+ referenced a slink:VkEvent, that event must: not be referenced by a
command that has been submitted to another queue and is still in the
_pending state_
* [[VUID-vkQueueSubmit2-semaphore-03868]]
@@ -2293,7 +2293,7 @@ ifdef::VK_VERSION_1_1[]
* [[VUID-vkQueueSubmit-queue-06448]]
If pname:queue was not created with
ename:VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT, there must: be no element of
- pname:pSubmits that includes an slink:VkProtectedSubmitInfo structure in
+ pname:pSubmits that includes a slink:VkProtectedSubmitInfo structure in
its pname:pNext chain with pname:protectedSubmit equal to ename:VK_TRUE
endif::VK_VERSION_1_1[]
****
@@ -3200,7 +3200,7 @@ ifdef::VK_ANDROID_external_format_resolve[]
ename:VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, the
pname:pNext chain of slink:VkCommandBufferInheritanceInfo used to create
each element of pname:pCommandBuffers must: include a
- slink:VkExternalFormatANDROID structure with a pname:externalFormat
+ slink:VkExternalFormatANDROID structure with an pname:externalFormat
matching that used to create the resolve attachment in the render pass
* [[VUID-vkCmdExecuteCommands-pNext-09300]]
If fname:vkCmdExecuteCommands is being called within a render pass
diff --git a/chapters/commonvalidity/draw_common.adoc b/chapters/commonvalidity/draw_common.adoc
index 18a9aa52..d41b34c1 100644
--- a/chapters/commonvalidity/draw_common.adoc
+++ b/chapters/commonvalidity/draw_common.adoc
@@ -811,8 +811,8 @@ endif::VK_EXT_dynamic_rendering_unused_attachments[]
flink:vkCmdBeginRendering and
slink:VkRenderingInfo::pname:colorAttachmentCount greater than `0`, then
each element of the slink:VkRenderingInfo::pname:pColorAttachments array
- with a pname:imageView not equal to dlink:VK_NULL_HANDLE must: have been
- created with a elink:VkFormat equal to the corresponding element of
+ with an pname:imageView not equal to dlink:VK_NULL_HANDLE must: have
+ been created with a elink:VkFormat equal to the corresponding element of
slink:VkPipelineRenderingCreateInfo::pname:pColorAttachmentFormats used
to create the currently bound graphics pipeline
* [[VUID-{refpage}-dynamicRenderingUnusedAttachments-08912]]
@@ -825,7 +825,7 @@ endif::VK_EXT_dynamic_rendering_unused_attachments[]
flink:vkCmdBeginRendering and
slink:VkRenderingInfo::pname:colorAttachmentCount greater than `0`, then
each element of the slink:VkRenderingInfo::pname:pColorAttachments array
- with a pname:imageView equal to dlink:VK_NULL_HANDLE must: have the
+ with an pname:imageView equal to dlink:VK_NULL_HANDLE must: have the
corresponding element of
slink:VkPipelineRenderingCreateInfo::pname:pColorAttachmentFormats used
to create the currently bound pipeline equal to
@@ -837,7 +837,7 @@ ifdef::VK_EXT_dynamic_rendering_unused_attachments[]
current render pass instance was begun with flink:vkCmdBeginRendering
and slink:VkRenderingInfo::pname:colorAttachmentCount greater than `0`,
then each element of the slink:VkRenderingInfo::pname:pColorAttachments
- array with a pname:imageView not equal to dlink:VK_NULL_HANDLE must:
+ array with an pname:imageView not equal to dlink:VK_NULL_HANDLE must:
have been created with a elink:VkFormat equal to the corresponding
element of
slink:VkPipelineRenderingCreateInfo::pname:pColorAttachmentFormats used
diff --git a/chapters/descriptorsets.adoc b/chapters/descriptorsets.adoc
index 37fc2a7c..8910bbbb 100644
--- a/chapters/descriptorsets.adoc
+++ b/chapters/descriptorsets.adoc
@@ -3612,7 +3612,7 @@ ifdef::VK_VULKAN_1_1,VK_KHR_sampler_ycbcr_conversion[]
* [[VUID-VkWriteDescriptorSet-descriptorType-02738]]
If pname:descriptorType is
ename:VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, and if any element of
- pname:pImageInfo has a pname:imageView member that was created with a
+ pname:pImageInfo has an pname:imageView member that was created with a
sname:VkSamplerYcbcrConversionInfo structure in its pname:pNext chain,
then pname:dstSet must: have been allocated with a layout that included
immutable samplers for pname:dstBinding, and the corresponding immutable
@@ -5857,7 +5857,7 @@ underlying slink:VkBuffer is referenced instead.
ifdef::VK_VULKAN_1_1,VK_KHR_sampler_ycbcr_conversion[]
If pname:pDescriptorInfo->type is not
ename:VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER or
- pname:pDescriptorInfo->data.pCombinedImageSampler has a pname:imageView
+ pname:pDescriptorInfo->data.pCombinedImageSampler has an pname:imageView
member that was not created with a sname:VkSamplerYcbcrConversionInfo
structure in its pname:pNext chain,
endif::VK_VULKAN_1_1,VK_KHR_sampler_ycbcr_conversion[]
@@ -5875,7 +5875,7 @@ ifdef::VK_VULKAN_1_1,VK_KHR_sampler_ycbcr_conversion[]
* [[VUID-vkGetDescriptorEXT-descriptorType-09469]]
If pname:pDescriptorInfo->type is
ename:VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER and
- pname:pDescriptorInfo->data.pCombinedImageSampler has a pname:imageView
+ pname:pDescriptorInfo->data.pCombinedImageSampler has an pname:imageView
member that was created with a sname:VkSamplerYcbcrConversionInfo
structure in its pname:pNext chain, pname:dataSize must: equal the size
of
diff --git a/chapters/devsandqueues.adoc b/chapters/devsandqueues.adoc
index a228b519..3cd0fec9 100644
--- a/chapters/devsandqueues.adoc
+++ b/chapters/devsandqueues.adoc
@@ -1477,9 +1477,10 @@ include::{generated}/validity/structs/VkQueueFamilyProperties2.adoc[]
ifdef::VK_EXT_global_priority_query,VK_KHR_global_priority[]
[open,refpage='VkQueueFamilyGlobalPriorityPropertiesKHR',desc='Return structure for queue family global priority information query',type='structs']
--
-The definition of slink:VkQueueFamilyGlobalPriorityPropertiesKHR is:
+The slink:VkQueueFamilyGlobalPriorityPropertiesKHR structure is defined as:
include::{generated}/api/structs/VkQueueFamilyGlobalPriorityPropertiesKHR.adoc[]
+
ifdef::VK_EXT_global_priority_query[]
or the equivalent
diff --git a/chapters/dispatch.adoc b/chapters/dispatch.adoc
index 12d4e0db..5702b849 100644
--- a/chapters/dispatch.adoc
+++ b/chapters/dispatch.adoc
@@ -200,8 +200,7 @@ ifdef::VK_HUAWEI_subpass_shading[]
A subpass shading dispatches a compute pipeline work with the work dimension
of render area of the calling subpass and work groups are partitioned by
specified work group size.
-Subpass operations like subpassLoad and subpassLoadMS are allowed to be
-used.
+Subpass operations like code:subpassLoad are allowed to be used.
To record a subpass shading, call:
diff --git a/chapters/features.adoc b/chapters/features.adoc
index 9f23f084..96da12f8 100644
--- a/chapters/features.adoc
+++ b/chapters/features.adoc
@@ -6980,7 +6980,7 @@ This structure describes the following feature:
slink:VkPipelineRenderingCreateInfo::pname:pColorAttachmentFormats
element with a format other than ename:VK_FORMAT_UNDEFINED is allowed
with a corresponding slink:VkRenderingInfo::pname:pColorAttachments
- element with a pname:imageView equal to dlink:VK_NULL_HANDLE, or any
+ element with an pname:imageView equal to dlink:VK_NULL_HANDLE, or any
pipeline
slink:VkPipelineRenderingCreateInfo::pname:pColorAttachmentFormats
element with a ename:VK_FORMAT_UNDEFINED format is allowed with a
@@ -7539,15 +7539,15 @@ include::{generated}/api/structs/VkPhysicalDeviceMapMemoryPlacedFeaturesEXT.adoc
This structure describes the following features:
- * [[features-memoryMapPlaced]] pname:memoryMapPlaced indicates that
- the implementation supports placing memory maps at client-specified
- virtual addresses.
+ * [[features-memoryMapPlaced]] pname:memoryMapPlaced indicates that the
+ implementation supports placing memory maps at client-specified virtual
+ addresses.
* [[features-memoryMapRangePlaced]] pname:memoryMapRangePlaced indicates
that the implementation supports placing memory maps of a subrange of a
memory object at client-specified virtual addresses.
- * [[features-memoryUnmapReserve]] pname:memoryUnmapReserve
- indicates that the implementation supports leaving the memory range
- reserved when unmapping a memory object.
+ * [[features-memoryUnmapReserve]] pname:memoryUnmapReserve indicates that
+ the implementation supports leaving the memory range reserved when
+ unmapping a memory object.
:refpage: VkPhysicalDeviceMapMemoryPlacedFeaturesEXT
include::{chapters}/features.adoc[tag=features]
@@ -7557,6 +7557,34 @@ include::{generated}/validity/structs/VkPhysicalDeviceMapMemoryPlacedFeaturesEXT
endif::VK_EXT_map_memory_placed[]
+ifdef::VK_NV_shader_atomic_float16_vector[]
+[open,refpage='VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV',desc='Structure describing features supported by VK_NV_shader_atomic_float16_vector',type='structs']
+--
+The slink:VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV structure is
+defined as:
+
+include::{generated}/api/structs/VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV.adoc[]
+
+This structure describes the following features:
+
+ * pname:sType is a elink:VkStructureType value identifying this structure.
+ * pname:pNext is `NULL` or a pointer to a structure extending this
+ structure.
+
+// tag::VK_NV_shader_atomic_float16_vector-features[]
+ * [[features-shaderFloat16VectorAtomics]] pname:shaderFloat16VectorAtomics
+ indicates whether shaders can: perform 16-bit floating-point, 2- and
+ 4-component vector atomic operations.
+// end::VK_NV_shader_atomic_float16_vector-features[]
+
+:refpage: VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV
+include::{chapters}/features.adoc[tag=features]
+
+include::{generated}/validity/structs/VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV.adoc[]
+--
+endif::VK_NV_shader_atomic_float16_vector[]
+
+
[[features-requirements]]
== Feature Requirements
@@ -8466,6 +8494,11 @@ ifdef::VK_KHR_shader_quad_control[]
* <<features-shaderQuadControl, pname:shaderQuadControl>>, if the
`apiext:VK_KHR_shader_quad_control` extension is supported.
endif::VK_KHR_shader_quad_control[]
+ifdef::VK_NV_shader_atomic_float16_vector[]
+ * <<features-shaderFloat16VectorAtomics,
+ pname:shaderFloat16VectorAtomics>>, if the
+ `apiext:VK_NV_shader_atomic_float16_vector` extension is supported.
+endif::VK_NV_shader_atomic_float16_vector[]
ifdef::VK_EXT_map_memory_placed[]
* <<features-memoryMapPlaced, pname:memoryMapPlaced>> if the
`apiext:VK_EXT_map_memory_placed` extension is supported.
diff --git a/chapters/formats.adoc b/chapters/formats.adoc
index 4e5697a7..22a993d9 100644
--- a/chapters/formats.adoc
+++ b/chapters/formats.adoc
@@ -2773,6 +2773,8 @@ of the named formats, with more information in the table
where the symbol appears
^|{sym3} | This feature must: be supported with some caveats or
preconditions, with more information in the table where the symbol appears
+^|{sym4} | This feature must: be supported with some caveats or
+preconditions, with more information in the table where the symbol appears
|====
.Feature bits in pname:optimalTilingFeatures
@@ -3014,38 +3016,44 @@ pname:shaderStorageImageExtendedFormats>> feature.
2+>| ename:VK_FORMAT_FEATURE_BLIT_SRC_BIT .3+^.^| {downarrow}
1+>| ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT .2+^.^| {downarrow}
s| Format
-| ename:VK_FORMAT_R16_UNORM | | | | {sym3} | | | | | | {sym1} | | |
-| ename:VK_FORMAT_R16_SNORM | | | | {sym3} | | | | | | {sym1} | | |
-| ename:VK_FORMAT_R16_USCALED | | | | | | | | | | | | |
-| ename:VK_FORMAT_R16_SSCALED | | | | | | | | | | | | |
-| ename:VK_FORMAT_R16_UINT | {sym1} | {sym1} | | {sym3} | | {sym1} | {sym1} | | | {sym1} | {sym1} | |
-| ename:VK_FORMAT_R16_SINT | {sym1} | {sym1} | | {sym3} | | {sym1} | {sym1} | | | {sym1} | {sym1} | |
-| ename:VK_FORMAT_R16_SFLOAT | {sym1} | {sym1} | {sym1} | {sym3} | | {sym1} | {sym1} | {sym1} | | {sym1} | {sym1} | |
-| ename:VK_FORMAT_R16G16_UNORM | | | | {sym3} | | | | | | {sym1} | | |
-| ename:VK_FORMAT_R16G16_SNORM | | | | {sym3} | | | | | | {sym1} | | |
-| ename:VK_FORMAT_R16G16_USCALED | | | | | | | | | | | | |
-| ename:VK_FORMAT_R16G16_SSCALED | | | | | | | | | | | | |
-| ename:VK_FORMAT_R16G16_UINT | {sym1} | {sym1} | | {sym3} | | {sym1} | {sym1} | | | {sym1} | {sym1} | |
-| ename:VK_FORMAT_R16G16_SINT | {sym1} | {sym1} | | {sym3} | | {sym1} | {sym1} | | | {sym1} | {sym1} | |
-| ename:VK_FORMAT_R16G16_SFLOAT | {sym1} | {sym1} | {sym1} | {sym3} | | {sym1} | {sym1} | {sym1} | | {sym1} | {sym1} | |
-| ename:VK_FORMAT_R16G16B16_UNORM | | | | | | | | | | | | |
-| ename:VK_FORMAT_R16G16B16_SNORM | | | | | | | | | | | | |
-| ename:VK_FORMAT_R16G16B16_USCALED | | | | | | | | | | | | |
-| ename:VK_FORMAT_R16G16B16_SSCALED | | | | | | | | | | | | |
-| ename:VK_FORMAT_R16G16B16_UINT | | | | | | | | | | | | |
-| ename:VK_FORMAT_R16G16B16_SINT | | | | | | | | | | | | |
-| ename:VK_FORMAT_R16G16B16_SFLOAT | | | | | | | | | | | | |
-| ename:VK_FORMAT_R16G16B16A16_UNORM | | | | {sym3} | | | | | | {sym1} | | |
-| ename:VK_FORMAT_R16G16B16A16_SNORM | | | | {sym3} | | | | | | {sym1} | | |
-| ename:VK_FORMAT_R16G16B16A16_USCALED | | | | | | | | | | | | |
-| ename:VK_FORMAT_R16G16B16A16_SSCALED | | | | | | | | | | | | |
-| ename:VK_FORMAT_R16G16B16A16_UINT | {sym1} | {sym1} | | {sym1} | | {sym1} | {sym1} | | | {sym1} | {sym1} | {sym1} |
-| ename:VK_FORMAT_R16G16B16A16_SINT | {sym1} | {sym1} | | {sym1} | | {sym1} | {sym1} | | | {sym1} | {sym1} | {sym1} |
-| ename:VK_FORMAT_R16G16B16A16_SFLOAT | {sym1} | {sym1} | {sym1} | {sym1} | | {sym1} | {sym1} | {sym1} | | {sym1} | {sym1} | {sym1} |
+| ename:VK_FORMAT_R16_UNORM | | | | {sym3} | | | | | | {sym1} | | |
+| ename:VK_FORMAT_R16_SNORM | | | | {sym3} | | | | | | {sym1} | | |
+| ename:VK_FORMAT_R16_USCALED | | | | | | | | | | | | |
+| ename:VK_FORMAT_R16_SSCALED | | | | | | | | | | | | |
+| ename:VK_FORMAT_R16_UINT | {sym1} | {sym1} | | {sym3} | | {sym1} | {sym1} | | | {sym1} | {sym1} | |
+| ename:VK_FORMAT_R16_SINT | {sym1} | {sym1} | | {sym3} | | {sym1} | {sym1} | | | {sym1} | {sym1} | |
+| ename:VK_FORMAT_R16_SFLOAT | {sym1} | {sym1} | {sym1} | {sym3} | | {sym1} | {sym1} | {sym1} | | {sym1} | {sym1} | |
+| ename:VK_FORMAT_R16G16_UNORM | | | | {sym3} | | | | | | {sym1} | | |
+| ename:VK_FORMAT_R16G16_SNORM | | | | {sym3} | | | | | | {sym1} | | |
+| ename:VK_FORMAT_R16G16_USCALED | | | | | | | | | | | | |
+| ename:VK_FORMAT_R16G16_SSCALED | | | | | | | | | | | | |
+| ename:VK_FORMAT_R16G16_UINT | {sym1} | {sym1} | | {sym3} | | {sym1} | {sym1} | | | {sym1} | {sym1} | |
+| ename:VK_FORMAT_R16G16_SINT | {sym1} | {sym1} | | {sym3} | | {sym1} | {sym1} | | | {sym1} | {sym1} | |
+| ename:VK_FORMAT_R16G16_SFLOAT | {sym1} | {sym1} | {sym1} | {sym3} | {sym4} | {sym1} | {sym1} | {sym1} | | {sym1} | {sym1} | {sym4} | {sym4}
+| ename:VK_FORMAT_R16G16B16_UNORM | | | | | | | | | | | | |
+| ename:VK_FORMAT_R16G16B16_SNORM | | | | | | | | | | | | |
+| ename:VK_FORMAT_R16G16B16_USCALED | | | | | | | | | | | | |
+| ename:VK_FORMAT_R16G16B16_SSCALED | | | | | | | | | | | | |
+| ename:VK_FORMAT_R16G16B16_UINT | | | | | | | | | | | | |
+| ename:VK_FORMAT_R16G16B16_SINT | | | | | | | | | | | | |
+| ename:VK_FORMAT_R16G16B16_SFLOAT | | | | | | | | | | | | |
+| ename:VK_FORMAT_R16G16B16A16_UNORM | | | | {sym3} | | | | | | {sym1} | | |
+| ename:VK_FORMAT_R16G16B16A16_SNORM | | | | {sym3} | | | | | | {sym1} | | |
+| ename:VK_FORMAT_R16G16B16A16_USCALED | | | | | | | | | | | | |
+| ename:VK_FORMAT_R16G16B16A16_SSCALED | | | | | | | | | | | | |
+| ename:VK_FORMAT_R16G16B16A16_UINT | {sym1} | {sym1} | | {sym1} | | {sym1} | {sym1} | | | {sym1} | {sym1} | {sym1} |
+| ename:VK_FORMAT_R16G16B16A16_SINT | {sym1} | {sym1} | | {sym1} | | {sym1} | {sym1} | | | {sym1} | {sym1} | {sym1} |
+| ename:VK_FORMAT_R16G16B16A16_SFLOAT | {sym1} | {sym1} | {sym1} | {sym1} | {sym4} | {sym1} | {sym1} | {sym1} | | {sym1} | {sym1} | {sym1} | {sym4}
14+| Format features marked with {sym3} must: be supported for
pname:optimalTilingFeatures if the sname:VkPhysicalDevice supports the
<<features-shaderStorageImageExtendedFormats,
pname:shaderStorageImageExtendedFormats>> feature.
+ifdef::VK_NV_shader_atomic_float16_vector[]
+14+| Format features marked with {sym4} must: be supported for
+pname:optimalTilingFeatures if the sname:VkPhysicalDevice supports
+the <<features-shaderFloat16VectorAtomics, pname:shaderFloat16VectorAtomics>>
+feature.
+endif::VK_NV_shader_atomic_float16_vector[]
|====
<<<
diff --git a/chapters/fragops.adoc b/chapters/fragops.adoc
index 22e7dd28..5207d5cd 100644
--- a/chapters/fragops.adoc
+++ b/chapters/fragops.adoc
@@ -560,7 +560,7 @@ When this structure is included in the pname:pNext chain of
slink:VkGraphicsPipelineCreateInfo, it defines parameters of the exclusive
scissor test.
If this structure is not included in the pname:pNext chain, it is equivalent
-to specifying this structure with a pname:exclusiveScissorCount of `0`.
+to specifying this structure with an pname:exclusiveScissorCount of `0`.
.Valid Usage
****
diff --git a/chapters/fundamentals.adoc b/chapters/fundamentals.adoc
index 4d520d32..b8ff5205 100644
--- a/chapters/fundamentals.adoc
+++ b/chapters/fundamentals.adoc
@@ -1333,6 +1333,20 @@ ifdef::VK_VERSION_1_3,VK_EXT_pipeline_creation_cache_control[]
have required compilation, but the application requested compilation to
not be performed.
endif::VK_VERSION_1_3,VK_EXT_pipeline_creation_cache_control[]
+ifdef::VK_EXT_shader_object[]
+ * ename:VK_INCOMPATIBLE_SHADER_BINARY_EXT The provided binary shader code
+ is not compatible with this device.
++
+[NOTE]
+.Note
+====
+In the initial version of the `apiext:VK_EXT_shader_object` extension, this
+return code was named ename:VK_ERROR_INCOMPATIBLE_SHADER_BINARY_EXT and
+improperly described as an error code.
+The name has been changed, but the old name is retained as an alias for
+compatibility with old code.
+====
+endif::VK_EXT_shader_object[]
[[fundamentals-errorcodes]]
.Error codes
@@ -1482,10 +1496,6 @@ ifdef::VK_KHR_video_encode_queue[]
not adhere to the capabilities of the video compression standard or the
implementation.
endif::VK_KHR_video_encode_queue[]
-ifdef::VK_EXT_shader_object[]
- * ename:VK_ERROR_INCOMPATIBLE_SHADER_BINARY_EXT The provided binary shader
- code is not compatible with this device.
-endif::VK_EXT_shader_object[]
* ename:VK_ERROR_UNKNOWN An unknown error has occurred; either the
application has provided invalid input, or an implementation failure has
occurred.
diff --git a/chapters/interfaces.adoc b/chapters/interfaces.adoc
index cfa3a955..5ace09d2 100644
--- a/chapters/interfaces.adoc
+++ b/chapters/interfaces.adoc
@@ -512,8 +512,8 @@ it is equivalent to specifying this structure with the following properties:
pname:colorAttachmentCount must: be less than or equal to
<<limits-maxColorAttachments,pname:maxColorAttachments>>
* [[VUID-VkRenderingAttachmentLocationInfoKHR-pColorAttachmentLocations-09515]]
- Each element of pname:pColorAttachmentLocations must: be less than or
- equal to <<limits-maxColorAttachments,pname:maxColorAttachments>>
+ Each element of pname:pColorAttachmentLocations must: be less than
+ <<limits-maxColorAttachments,pname:maxColorAttachments>>
****
include::{generated}/validity/structs/VkRenderingAttachmentLocationInfoKHR.adoc[]
diff --git a/chapters/limits.adoc b/chapters/limits.adoc
index 99319d5c..aa8aacbb 100644
--- a/chapters/limits.adoc
+++ b/chapters/limits.adoc
@@ -4569,18 +4569,17 @@ endif::VK_ARM_render_pass_striped[]
ifdef::VK_EXT_map_memory_placed[]
[open,refpage='VkPhysicalDeviceMapMemoryPlacedPropertiesEXT',desc='Structure describing the alignment requirements of placed memory maps for a physical device',type='structs']
--
-The sname:VkPhysicalDeviceMapMemoryPlacedPropertiesEXT structure is
-defined as:
+The sname:VkPhysicalDeviceMapMemoryPlacedPropertiesEXT structure is defined
+as:
include::{generated}/api/structs/VkPhysicalDeviceMapMemoryPlacedPropertiesEXT.adoc[]
The members of the sname:VkPhysicalDeviceMapMemoryPlacedPropertiesEXT
structure describe the following:
- * [[limits-minPlacedMemoryMapAlignment]]
- pname:minPlacedMemoryMapAlignment is the minimum alignment required for
- memory object offsets and virtual address ranges when using placed
- memory mapping.
+ * [[limits-minPlacedMemoryMapAlignment]] pname:minPlacedMemoryMapAlignment
+ is the minimum alignment required for memory object offsets and virtual
+ address ranges when using placed memory mapping.
:refpage: VkPhysicalDeviceMapMemoryPlacedPropertiesEXT
include::{chapters}/limits.adoc[tag=limits_desc]
diff --git a/chapters/memory.adoc b/chapters/memory.adoc
index 8cf9f876..58bbd836 100644
--- a/chapters/memory.adoc
+++ b/chapters/memory.adoc
@@ -3583,7 +3583,8 @@ ifdef::VK_KHR_device_group[]
pname:memory must: not have been allocated with multiple instances
endif::VK_KHR_device_group[]
ifdef::VK_EXT_map_memory_placed[]
- * ename:VK_MEMORY_MAP_PLACED_BIT_EXT must: not be set in pname:flags
+ * [[VUID-vkMapMemory-flags-09568]]
+ ename:VK_MEMORY_MAP_PLACED_BIT_EXT must: not be set in pname:flags
endif::VK_EXT_map_memory_placed[]
****
@@ -3594,8 +3595,8 @@ ifdef::VK_EXT_map_memory_placed[]
[open,refpage='VkMemoryMapFlagBits',desc='Bitmask specifying additional parameters of a memory map',type='enums']
--
Bits which can: be set in flink:vkMapMemory::pname:flags and
-slink:VkMemoryMapInfoKHR::pname:flags, specifying additional properties of
-a memory map, are:
+slink:VkMemoryMapInfoKHR::pname:flags, specifying additional properties of a
+memory map, are:
include::{generated}/api/enums/VkMemoryMapFlagBits.adoc[]
@@ -3603,8 +3604,8 @@ include::{generated}/api/enums/VkMemoryMapFlagBits.adoc[]
place the memory map at the virtual address specified by the client via
slink:VkMemoryMapPlacedInfoEXT::pname:pPlacedAddress, replacing any
existing mapping at that address.
- This flag must: not be used with flink:vkMapMemory as there is no way
- to specify the placement address.
+ This flag must: not be used with flink:vkMapMemory as there is no way to
+ specify the placement address.
--
endif::VK_EXT_map_memory_placed[]
@@ -3678,30 +3679,37 @@ ifdef::VK_KHR_device_group[]
pname:memory must: not have been allocated with multiple instances
endif::VK_KHR_device_group[]
ifdef::VK_EXT_map_memory_placed[]
- * If ename:VK_MEMORY_MAP_PLACED_BIT_EXT is set in pname:flags, the
+ * [[VUID-VkMemoryMapInfoKHR-flags-09569]]
+ If ename:VK_MEMORY_MAP_PLACED_BIT_EXT is set in pname:flags, the
<<features-memoryMapPlaced, pname:memoryMapPlaced>> feature must: be
enabled
- * If ename:VK_MEMORY_MAP_PLACED_BIT_EXT is set in pname:flags, the
+ * [[VUID-VkMemoryMapInfoKHR-flags-09570]]
+ If ename:VK_MEMORY_MAP_PLACED_BIT_EXT is set in pname:flags, the
pname:pNext chain must: include a slink:VkMemoryMapPlacedInfoEXT
- structure and sname:VkMemoryMapPlacedInfoEXT::pname:pPlacedAddress
- must: not be `NULL`
- * If ename:VK_MEMORY_MAP_PLACED_BIT_EXT is set in pname:flags and the
- <<features-memoryMapRangePlaced, pname:memoryMapRangePlaced>> feature
- is not enabled, pname:offset must: be zero
- * If ename:VK_MEMORY_MAP_PLACED_BIT_EXT is set in pname:flags and the
- <<features-memoryMapRangePlaced, pname:memoryMapRangePlaced>> feature
- is not enabled, pname:size must: be ename:VK_WHOLE_SIZE
- * If ename:VK_MEMORY_MAP_PLACED_BIT_EXT is set in pname:flags and the
- <<features-memoryMapRangePlaced, pname:memoryMapRangePlaced>> feature
- is enabled, pname:offset must: be aligned to an integer multiple of
+ structure and sname:VkMemoryMapPlacedInfoEXT::pname:pPlacedAddress must:
+ not be `NULL`
+ * [[VUID-VkMemoryMapInfoKHR-flags-09571]]
+ If ename:VK_MEMORY_MAP_PLACED_BIT_EXT is set in pname:flags and the
+ <<features-memoryMapRangePlaced, pname:memoryMapRangePlaced>> feature is
+ not enabled, pname:offset must: be zero
+ * [[VUID-VkMemoryMapInfoKHR-flags-09572]]
+ If ename:VK_MEMORY_MAP_PLACED_BIT_EXT is set in pname:flags and the
+ <<features-memoryMapRangePlaced, pname:memoryMapRangePlaced>> feature is
+ not enabled, pname:size must: be ename:VK_WHOLE_SIZE
+ * [[VUID-VkMemoryMapInfoKHR-flags-09573]]
+ If ename:VK_MEMORY_MAP_PLACED_BIT_EXT is set in pname:flags and the
+ <<features-memoryMapRangePlaced, pname:memoryMapRangePlaced>> feature is
+ enabled, pname:offset must: be aligned to an integer multiple of
sname:VkPhysicalDeviceMapMemoryPlacedPropertiesEXT::pname:minPlacedMemoryMapAlignment
- * If ename:VK_MEMORY_MAP_PLACED_BIT_EXT is set in pname:flags and the
- <<features-memoryMapRangePlaced, pname:memoryMapRangePlaced>> feature
- is enabled, pname:size must: be ename:VK_WHOLE_SIZE or be aligned to an
+ * [[VUID-VkMemoryMapInfoKHR-flags-09574]]
+ If ename:VK_MEMORY_MAP_PLACED_BIT_EXT is set in pname:flags and the
+ <<features-memoryMapRangePlaced, pname:memoryMapRangePlaced>> feature is
+ enabled, pname:size must: be ename:VK_WHOLE_SIZE or be aligned to an
integer multiple of
sname:VkPhysicalDeviceMapMemoryPlacedPropertiesEXT::pname:minPlacedMemoryMapAlignment
ifdef::VK_EXT_external_memory_host[]
- * If ename:VK_MEMORY_MAP_PLACED_BIT_EXT is set in pname:flags, the memory
+ * [[VUID-VkMemoryMapInfoKHR-flags-09575]]
+ If ename:VK_MEMORY_MAP_PLACED_BIT_EXT is set in pname:flags, the memory
object must: not have been imported from a handle type of
ename:VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT or
ename:VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT
@@ -3719,8 +3727,8 @@ ifdef::VK_EXT_map_memory_placed[]
If ename:VK_MEMORY_MAP_PLACED_BIT_EXT is set in
sname:VkMemoryMapInfoKHR::pname:flags and the pname:pNext chain of
slink:VkMemoryMapInfoKHR includes a sname:VkMemoryMapPlacedInfoEXT
-structure, then that structure specifies the placement address of the
-memory map.
+structure, then that structure specifies the placement address of the memory
+map.
The implementation will place the memory map at the specified address,
replacing any existing maps in the specified memory range.
Replacing memory maps in this way does not implicitly unmap Vulkan memory
@@ -3730,29 +3738,33 @@ anywhere in the specified virtual address range.
If successful, pname:ppData will be set to the same value as
sname:VkMemoryMapPlacedInfoEXT::pname:pPlacedAddress and
fname:vkMapMemory2KHR will return ename:VK_SUCCESS.
-If it cannot place the map at the requested address for any
-reason, the memory object is left unmapped and fname:vkMapMemory2KHR will
-return ename:VK_ERROR_MEMORY_MAP_FAILED.
+If it cannot place the map at the requested address for any reason, the
+memory object is left unmapped and fname:vkMapMemory2KHR will return
+ename:VK_ERROR_MEMORY_MAP_FAILED.
The sname:VkMemoryMapPlacedInfoEXT structure is defined as:
include::{generated}/api/structs/VkMemoryMapPlacedInfoEXT.adoc[]
- * pname:sType is the type of this structure.
+ * pname:sType is a elink:VkStructureType value identifying this structure.
* pname:pNext is `NULL` or a pointer to a structure extending this
structure.
* pname:pPlacedAddress is the virtual address at which to place the
- address. If sname:VkMemoryMapInfoKHR::pname:flags does not contain
+ address.
+ If sname:VkMemoryMapInfoKHR::pname:flags does not contain
ename:VK_MEMORY_MAP_PLACED_BIT_EXT, this value is ignored.
.Valid Usage
****
- * If sname:VkMemoryMapInfoKHR::pname:flags contains
+ * [[VUID-VkMemoryMapPlacedInfoEXT-flags-09576]]
+ If sname:VkMemoryMapInfoKHR::pname:flags contains
ename:VK_MEMORY_MAP_PLACED_BIT_EXT, pname:pPlacedAddress must: not be
`NULL`
- * pname:pPlacedAddress must: be aligned to an integer multiple of
+ * [[VUID-VkMemoryMapPlacedInfoEXT-pPlacedAddress-09577]]
+ pname:pPlacedAddress must: be aligned to an integer multiple of
sname:VkPhysicalDeviceMapMemoryPlacedPropertiesEXT::pname:minPlacedMemoryMapAlignment
- * The address range specified by pname:pPlacedAddress and
+ * [[VUID-VkMemoryMapPlacedInfoEXT-pPlacedAddress-09578]]
+ The address range specified by pname:pPlacedAddress and
sname:VkMemoryMapInfoKHR::pname:size must: not overlap any existing
Vulkan memory object mapping.
****
@@ -4004,11 +4016,13 @@ include::{generated}/api/structs/VkMemoryUnmapInfoKHR.adoc[]
* [[VUID-VkMemoryUnmapInfoKHR-memory-07964]]
pname:memory must: be currently host mapped
ifdef::VK_EXT_map_memory_placed[]
- * If ename:VK_MEMORY_UNMAP_RESERVE_BIT_EXT is set in pname:flags,
- the <<features-memoryUnmapReserve, pname:memoryUnmapReserve>>
- must: be enabled
+ * [[VUID-VkMemoryUnmapInfoKHR-flags-09579]]
+ If ename:VK_MEMORY_UNMAP_RESERVE_BIT_EXT is set in pname:flags, the
+ <<features-memoryUnmapReserve, pname:memoryUnmapReserve>> must: be
+ enabled
ifdef::VK_EXT_external_memory_host[]
- * If ename:VK_MEMORY_UNMAP_RESERVE_BIT_EXT is set in pname:flags, the
+ * [[VUID-VkMemoryUnmapInfoKHR-flags-09580]]
+ If ename:VK_MEMORY_UNMAP_RESERVE_BIT_EXT is set in pname:flags, the
memory object must: not have been imported from a handle type of
ename:VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT or
ename:VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT
@@ -4022,8 +4036,8 @@ include::{generated}/validity/structs/VkMemoryUnmapInfoKHR.adoc[]
ifdef::VK_EXT_map_memory_placed[]
[open,refpage='VkMemoryUnmapFlagBitsKHR',desc='Bitmask specifying additional parameters of a memory unmap',type='enums']
--
-Bits which can: be set in slink:VkMemoryUnmapInfoKHR::pname:flags, specifying
-additional properties of a memory unmap, are:
+Bits which can: be set in slink:VkMemoryUnmapInfoKHR::pname:flags,
+specifying additional properties of a memory unmap, are:
include::{generated}/api/enums/VkMemoryUnmapFlagBitsKHR.adoc[]
@@ -4031,8 +4045,8 @@ include::{generated}/api/enums/VkMemoryUnmapFlagBitsKHR.adoc[]
range currently occupied by the memory map remain reserved after the
flink:vkUnmapMemory2KHR call completes.
Future system memory map operations or calls to flink:vkMapMemory or
- flink:vkMapMemory2KHR will not return addresses in that range unless
- the range has since been unreserved by the client or the mapping is
+ flink:vkMapMemory2KHR will not return addresses in that range unless the
+ range has since been unreserved by the client or the mapping is
explicitly placed in that range by calling flink:vkMapMemory2KHR with
ename:VK_MEMORY_MAP_PLACED_BIT_EXT, or doing the system memory map
equivalent.
diff --git a/chapters/pipelines.adoc b/chapters/pipelines.adoc
index 84cbd77e..8d48e197 100755
--- a/chapters/pipelines.adoc
+++ b/chapters/pipelines.adoc
@@ -2335,12 +2335,6 @@ ifdef::VK_VERSION_1_1,VK_KHR_multiview[]
pre-rasterization shader state>>, and pname:subpass viewMask is not `0`,
then all of the shaders in the pipeline must: not include variables
decorated with the code:Layer built-in decoration in their interfaces
- * [[VUID-VkGraphicsPipelineCreateInfo-renderPass-07717]]
- If pname:renderPass is not dlink:VK_NULL_HANDLE and the pipeline is
- being created with <<pipelines-graphics-subsets-pre-rasterization,
- pre-rasterization shader state>>, and pname:subpass viewMask is not `0`,
- then all of the shaders in the pipeline must: not include variables
- decorated with the code:ViewMask built-in decoration in their interfaces
ifdef::VK_EXT_mesh_shader[]
* [[VUID-VkGraphicsPipelineCreateInfo-renderPass-07064]]
If pname:renderPass is not dlink:VK_NULL_HANDLE, the pipeline is being
@@ -3224,13 +3218,6 @@ ifdef::VK_KHR_multiview,VK_VERSION_1_1[]
slink:VkPipelineRenderingCreateInfo::pname:viewMask is not `0`, all of
the shaders in the pipeline must: not include variables decorated with
the code:Layer built-in decoration in their interfaces
- * [[VUID-VkGraphicsPipelineCreateInfo-renderPass-07719]]
- If pname:renderPass is dlink:VK_NULL_HANDLE, the pipeline is being
- created with <<pipelines-graphics-subsets-pre-rasterization,
- pre-rasterization shader state>>, and
- slink:VkPipelineRenderingCreateInfo::pname:viewMask is not `0`, all of
- the shaders in the pipeline must: not include variables decorated with
- the code:ViewIndex built-in decoration in their interfaces
ifdef::VK_EXT_mesh_shader[]
* [[VUID-VkGraphicsPipelineCreateInfo-renderPass-07720]]
If pname:renderPass is dlink:VK_NULL_HANDLE, the pipeline is being
diff --git a/chapters/raytraversal.adoc b/chapters/raytraversal.adoc
index 853161a4..a206d416 100644
--- a/chapters/raytraversal.adoc
+++ b/chapters/raytraversal.adoc
@@ -47,7 +47,7 @@ Thus an implementation should behave as if the ray is transformed from the
origin for each instance independently.
====
-Next, rays are tested against geometries in an bottom-level acceleration
+Next, rays are tested against geometries in a bottom-level acceleration
structure to determine if a hit occurred between them, initially based only
on their geometric properties (i.e. their vertices).
The implementation performs similar operations to that of rasterization, but
diff --git a/chapters/renderpass.adoc b/chapters/renderpass.adoc
index be51f870..918286ed 100644
--- a/chapters/renderpass.adoc
+++ b/chapters/renderpass.adoc
@@ -4113,7 +4113,7 @@ ifdef::VK_KHR_fragment_shading_rate[]
format of ename:VK_FORMAT_UNDEFINED,
slink:VkFragmentShadingRateAttachmentInfoKHR::pname:pFragmentShadingRateAttachment
must: either be `NULL` or a slink:VkAttachmentReference2 structure with
- a pname:attachment value of ename:VK_ATTACHMENT_UNUSED
+ an pname:attachment value of ename:VK_ATTACHMENT_UNUSED
endif::VK_KHR_fragment_shading_rate[]
* [[VUID-VkSubpassDescription2-externalFormatResolve-09348]]
If <<features-externalFormatResolve,pname:externalFormatResolve>> is
diff --git a/chapters/resources.adoc b/chapters/resources.adoc
index ba5fb113..cd0fd51f 100644
--- a/chapters/resources.adoc
+++ b/chapters/resources.adoc
@@ -3770,10 +3770,11 @@ flink:vkGetImageSubresourceLayout, with the ability to specify extended
inputs via chained input structures, and to return extended information via
chained output structures.
-It is legal to call fname:vkGetImageSubresourceLayout2KHR with a pname:image
-created with pname:tiling equal to ename:VK_IMAGE_TILING_OPTIMAL, but the
-members of slink:VkSubresourceLayout2KHR::pname:subresourceLayout will have
-undefined: values in this case.
+It is legal to call fname:vkGetImageSubresourceLayout2KHR with an
+pname:image created with pname:tiling equal to
+ename:VK_IMAGE_TILING_OPTIMAL, but the members of
+slink:VkSubresourceLayout2KHR::pname:subresourceLayout will have undefined:
+values in this case.
[NOTE]
.Note
@@ -8170,7 +8171,7 @@ ifdef::VK_ANDROID_external_memory_android_hardware_buffer[]
The precise size of images that will be bound to external Android hardware
buffer memory is unknown until the memory has been imported or allocated, so
applications must: not call flink:vkGetImageMemoryRequirements or
-flink:vkGetImageMemoryRequirements2 with such an slink:VkImage before it has
+flink:vkGetImageMemoryRequirements2 with such a slink:VkImage before it has
been bound to memory.
ifdef::VK_VERSION_1_3,VK_KHR_maintenance4[]
For this reason, applications also must: not call
@@ -10031,8 +10032,8 @@ To initialize a buffer collection on Fuchsia:
[open,refpage='vkCreateBufferCollectionFUCHSIA',desc='Create a new buffer collection',type='protos']
--
-To create an slink:VkBufferCollectionFUCHSIA for Vulkan to participate in
-the buffer collection:
+To create a slink:VkBufferCollectionFUCHSIA for Vulkan to participate in the
+buffer collection:
include::{generated}/api/protos/vkCreateBufferCollectionFUCHSIA.adoc[]
diff --git a/chapters/shaders.adoc b/chapters/shaders.adoc
index 1ff9b6f3..db7a7553 100644
--- a/chapters/shaders.adoc
+++ b/chapters/shaders.adoc
@@ -717,11 +717,12 @@ code created on a device with a different or unknown pname:shaderBinaryUUID
and/or higher pname:shaderBinaryVersion.
In this case, the implementation may: use any unspecified means of its
choosing to determine whether the provided binary shader code is usable.
-If it is, the flink:vkCreateShadersEXT call must: return ename:VK_SUCCESS,
-and the created shader object is guaranteed to be valid.
-Otherwise, in the absence of some other error, the flink:vkCreateShadersEXT
-call must: return ename:VK_ERROR_INCOMPATIBLE_SHADER_BINARY_EXT to indicate
-that the provided binary shader code is not compatible with the device.
+If it is, flink:vkCreateShadersEXT must: return ename:VK_SUCCESS, and the
+created shader object is guaranteed to be valid.
+Otherwise, in the absence of some error, flink:vkCreateShadersEXT must:
+return ename:VK_INCOMPATIBLE_SHADER_BINARY_EXT to indicate that the provided
+binary shader code is not compatible with the device.
+
[[shaders-objects-binding]]
=== Binding Shader Objects
diff --git a/chapters/synchronization.adoc b/chapters/synchronization.adoc
index 92d1ac3d..ba8782e9 100644
--- a/chapters/synchronization.adoc
+++ b/chapters/synchronization.adoc
@@ -6347,7 +6347,7 @@ include::{generated}/api/protos/vkCmdPipelineBarrier.adoc[]
ifdef::VK_VERSION_1_3,VK_KHR_synchronization2[]
fname:vkCmdPipelineBarrier operates almost identically to
flink:vkCmdPipelineBarrier2, except that the scopes and barriers are defined
-as direct parameters rather than being defined by an slink:VkDependencyInfo.
+as direct parameters rather than being defined by a slink:VkDependencyInfo.
endif::VK_VERSION_1_3,VK_KHR_synchronization2[]
When flink:vkCmdPipelineBarrier is submitted to a queue, it defines a memory
diff --git a/chapters/textures.adoc b/chapters/textures.adoc
index 5e4dcbd9..eee9cfd7 100644
--- a/chapters/textures.adoc
+++ b/chapters/textures.adoc
@@ -3594,9 +3594,9 @@ The target view and reference view can be the same view, allowing block
matching of two blocks within a single image.
Similar to an equivalent code:OpImageFetch instruction,
-code:opImageBlockMatchSAD and code:opImageBlockMatchSAD specify a code:image
-and an integer texel code:coordinate which which describes the bottom-left
-texel of the target block.
+code:opImageBlockMatchSAD and code:opImageBlockMatchSAD specify an
+code:image and an integer texel code:coordinate which which describes the
+bottom-left texel of the target block.
There are three additional inputs.
The code:reference and code:refCoodinate specifies bottom-left texel of the
reference block.
diff --git a/chapters/videocoding.adoc b/chapters/videocoding.adoc
index ddab7599..bd64b83e 100644
--- a/chapters/videocoding.adoc
+++ b/chapters/videocoding.adoc
@@ -354,8 +354,8 @@ pname:pNext chain.
[[video-profile-error-codes]]
When this structure is specified as an input parameter to
flink:vkGetPhysicalDeviceVideoCapabilitiesKHR, or through the
-pname:pProfiles member of an slink:VkVideoProfileListInfoKHR structure in
-the pname:pNext chain of the input parameter of a query command such as
+pname:pProfiles member of a slink:VkVideoProfileListInfoKHR structure in the
+pname:pNext chain of the input parameter of a query command such as
flink:vkGetPhysicalDeviceVideoFormatPropertiesKHR or
flink:vkGetPhysicalDeviceImageFormatProperties2, the following error codes
indicate specific causes of the failure of the query operation:
diff --git a/config/attribs.adoc b/config/attribs.adoc
index 73dab5bd..5b83e3ff 100644
--- a/config/attribs.adoc
+++ b/config/attribs.adoc
@@ -19,6 +19,7 @@
:sym1: ✓
:sym2: †
:sym3: ‡
+:sym4: §
:reg: ®
:trade: â„¢
:harr: ↔
diff --git a/config/extension-highlighter/extension.rb b/config/extension-highlighter/extension.rb
index 13dabc2d..08d62f83 100644
--- a/config/extension-highlighter/extension.rb
+++ b/config/extension-highlighter/extension.rb
@@ -40,7 +40,7 @@ class ExtensionHighlighterPreprocessorReader < PreprocessorReader
# If it is an ifdef or ifndef, push the directive onto a stack
# If it is an endif, pop the last one off.
# This is done to apply the next bit of logic to both the start and end
- # of an conditional block correctly
+ # of a conditional block correctly
status = directive
if directive == 'endif'
status = @status_stack.pop
@@ -103,7 +103,7 @@ class ExtensionHighlighterPreprocessorReader < PreprocessorReader
# If it is an ifdef or ifndef, push the directive onto a stack
# If it is an endif, pop the last one off.
# This is done to apply the next bit of logic to both the start and end
- # of an conditional block correctly
+ # of a conditional block correctly
status = directive
if directive == 'endif'
status = @status_stack.pop
diff --git a/proposals/VK_EXT_dynamic_rendering_unused_attachments.adoc b/proposals/VK_EXT_dynamic_rendering_unused_attachments.adoc
index c057e23b..95d2c1ae 100644
--- a/proposals/VK_EXT_dynamic_rendering_unused_attachments.adoc
+++ b/proposals/VK_EXT_dynamic_rendering_unused_attachments.adoc
@@ -46,7 +46,7 @@ with undefined formats.
The VUIDs that contribute to this limitation are:
<dt>[VUID-vkCmdDraw-colorAttachmentCount-07616](https://www.khronos.org/registry/vulkan/specs/1.3/html/vkspec.html#VUID-vkCmdDraw-colorAttachmentCount-07616)</dt>
-<dd>If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED</dd>
+<dd>If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with an imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED</dd>
<dt>[VUID-vkCmdDraw-pDepthAttachment-07617](https://www.khronos.org/registry/vulkan/specs/1.3/html/vkspec.html#VUID-vkCmdDraw-pDepthAttachment-07617)</dt>
<dd>If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::pDepthAttachment->imageView was VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to VK_FORMAT_UNDEFINED</dd>
@@ -58,7 +58,7 @@ The VUIDs that contribute to this limitation are:
<dd>If vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering, if the imageView member of an element of the VkRenderingInfo::pColorAttachments parameter to vkCmdBeginRendering is VK_NULL_HANDLE, the corresponding element of the pColorAttachmentFormats member of the VkCommandBufferInheritanceRenderingInfo structure included in the pNext chain of VkCommandBufferBeginInfo::pInheritanceInfo used to begin recording each element of pCommandBuffers must be VK_FORMAT_UNDEFINED</dd>
<dt>[VUID-vkCmdDraw-colorAttachmentCount-06180](https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VUID-vkCmdDraw-colorAttachmentCount-06180)</dt>
-<dd>If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline</dd>
+<dd>If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with an imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline</dd>
<dt>[VUID-vkCmdDraw-pDepthAttachment-06181](https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VUID-vkCmdDraw-pDepthAttachment-06181)</dt>
<dd>If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::depthAttachmentFormat used to create the currently bound graphics pipeline must be equal to the VkFormat used to create VkRenderingInfo::pDepthAttachment->imageView</dd>
diff --git a/proposals/VK_EXT_map_memory_placed.adoc b/proposals/VK_EXT_map_memory_placed.adoc
index 91037207..a35b69fc 100644
--- a/proposals/VK_EXT_map_memory_placed.adoc
+++ b/proposals/VK_EXT_map_memory_placed.adoc
@@ -1,5 +1,4 @@
-// Copyright 2022-2023 The Khronos Group, Inc.
-//
+// Copyright 2022-2024 The Khronos Group, Inc.
// SPDX-License-Identifier: CC-BY-4.0
# VK_EXT_map_memory_placed
@@ -103,7 +102,7 @@ If the map cannot be placed exactly at the specified virtual address,
When `VK_MEMORY_UNMAP_RESERVE_BIT_EXT` is set in the `flags` member of
`VkMemoryUnmapInfoEXT`, the memory object will be unmapped but the
address range will remain reserved so that another call to `mmap()` or
-`vkMapMemory()` will not re-use that address range without an address hint
+`vkMapMemory()` will not reuse that address range without an address hint
or `VK_MEMORY_MAP_PLACED_BIT_EXT`, respectively.
## Examples
diff --git a/proposals/VK_EXT_shader_object.adoc b/proposals/VK_EXT_shader_object.adoc
index 589deab1..c3407e85 100644
--- a/proposals/VK_EXT_shader_object.adoc
+++ b/proposals/VK_EXT_shader_object.adoc
@@ -51,7 +51,7 @@ Several approaches are immediately apparent:
Option 1 is a natural extension of recent efforts and requires relatively few API changes, but it adds even more complexity to the already very complex pipeline concept, while also failing to adequately address significant parts of the problem. While directly bindable pipeline libraries do reduce the dimensionality of pipeline combinatorics, they do not provide any meaningful absolute CPU performance improvement at pipeline bind time. The total overhead of binding N different pipeline libraries is still roughly on par with the overhead of binding a single (monolithic or linked) pipeline.
-Option 2 also requires relatively few API changes and would do more to address bind time CPU performance than option 1, but this option is limited in both the class of issues it can address and its portability across implementations. Much of the universally supportable "low hanging fruit" dynamic state has already been exposed by the existing extended dynamic state extensions, and the remaining state is mostly not universally dynamic. Exposing states A and B as dynamic on one implementation and states B and C on another is still valuable, but it limits this approach's benefits for simplifying application architectures. Even though this option is not a complete solution, it can and should be pursued in parallel with other efforts -- both for its own sake and as a potential foundation for more a comprehensive solution.
+Option 2 also requires relatively few API changes and would do more to address bind time CPU performance than option 1, but this option is limited in both the class of issues it can address and its portability across implementations. Much of the universally supportable "low hanging fruit" dynamic state has already been exposed by the existing extended dynamic state extensions, and the remaining state is mostly not universally dynamic. Exposing states A and B as dynamic on one implementation and states B and C on another is still valuable, but it limits this approach's benefits for simplifying application architectures. Even though this option is not a complete solution, it can and should be pursued in parallel with other efforts -- both for its own sake and as a potential foundation for more a comprehensive solution.
Option 3 is more radical, but brings the API design more in line with developer expectations. The pipeline abstraction has been a consistent problem for many developers trying to use Vulkan since its inception, and this option can produce a cleaner, more user-friendly abstraction that bypasses the complexity of pipelines. With the benefit of years of hindsight and broader Working Group knowledge about the constraints of each others' implementations, it can aim to achieve a design which better balances API simplicity with adherence to the explicit design ethos of Vulkan.
@@ -143,7 +143,7 @@ When `pData` is `NULL`, `size` is filled with the number of bytes needed to stor
When `pData` is non-`NULL`, `size` points to the application-provided size of `pData`. If the provided size is large enough then the location pointed to by `pData` is filled with the shader’s binary code and `VK_SUCCESS` is returned, otherwise nothing is written to `pData` and `VK_INCOMPLETE` is returned.
-The binary shader code returned in `pData` can be saved by the application and used in a future `vkCreateShadersEXT()` call (including on a different `VkInstance` and/or `VkDevice`) with a compatible physical device by setting `codeType` to `VK_SHADER_CODE_TYPE_BINARY_EXT`. This means that on fixed platforms like game consoles and embedded systems applications need not ship SPIR-V shader code at all. If the binary shader code in any `VkShaderCreateInfoEXT` passed to `vkCreateShadersEXT()` is not compatible with the physical device then the `vkCreateShadersEXT()` call returns `VK_ERROR_INCOMPATIBLE_SHADER_BINARY_EXT`.
+The binary shader code returned in `pData` can be saved by the application and used in a future `vkCreateShadersEXT()` call (including on a different `VkInstance` and/or `VkDevice`) with a compatible physical device by setting `codeType` to `VK_SHADER_CODE_TYPE_BINARY_EXT`. This means that on fixed platforms like game consoles and embedded systems applications need not ship SPIR-V shader code at all. If the binary shader code in any `VkShaderCreateInfoEXT` passed to `vkCreateShadersEXT()` is not compatible with the physical device then the `vkCreateShadersEXT()` call returns `VK_INCOMPATIBLE_SHADER_BINARY_EXT`.
Applications must pass the same values of `VK_SHADER_CREATE_LINK_STAGE_BIT_EXT` to a `vkCreateShadersEXT()` call with a `codeType` of `VK_SHADER_CODE_TYPE_BINARY_EXT` as were passed when those shaders were originally compiled from SPIR-V.
@@ -695,6 +695,19 @@ This could be addressed by introducing a new MinSampleShading shader builtin whi
Until such an extension is available, applications that need to specify a minSampleShading other than 1.0 should use pipelines.
+=== RESOLVED: Is `VK_INCOMPATIBLE_SHADER_BINARY_EXT` a success code, or an error code?
+
+A success code.
+
+Initially this token was named `VK_ERROR_INCOMPATIBLE_SHADER_BINARY_EXT`,
+but as pointed out in
+https://github.com/KhronosGroup/Vulkan-Docs/issues/2295 the numeric value
+assigned to the token was positive.
+
+On further discussion we agreed that the return code was a success code,
+much as `VK_INCOMPLETE` is, and aliased the original name to the current name
+without `ERROR` in it.
+
== Further Functionality
* Shader optimization hints
diff --git a/proposals/VK_EXT_subpass_merge_feedback.adoc b/proposals/VK_EXT_subpass_merge_feedback.adoc
index d5811ee9..70fda900 100644
--- a/proposals/VK_EXT_subpass_merge_feedback.adoc
+++ b/proposals/VK_EXT_subpass_merge_feedback.adoc
@@ -28,7 +28,7 @@ provide subpass merging feedback and control subpass merging at render pass crea
If the subpasses cannot be merged, the reason could be returned. The driver could change the
conditions of subpass merging based on performance result, or being compatible with future new
-extensions, so using a string to store the reason is more flexible than a enumeration.
+extensions, so using a string to store the reason is more flexible than an enumeration.
== Proposal
diff --git a/proposals/VK_HUAWEI_cluster_culling_shader.adoc b/proposals/VK_HUAWEI_cluster_culling_shader.adoc
index 5a7656fd..89c13c57 100644
--- a/proposals/VK_HUAWEI_cluster_culling_shader.adoc
+++ b/proposals/VK_HUAWEI_cluster_culling_shader.adoc
@@ -153,7 +153,7 @@ If the `VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI` structure is inclu
==== built-in
-cluster culling shader have the following built-in output variables, these variables form a aforementioned drawing command.
+Cluster Culling Shaders have the following built-in output variables, these variables form an aforementioned drawing command.
* `IndexCountHUAWEI` is the number of vertices to draw.
diff --git a/proposals/VK_KHR_dynamic_rendering_local_read.adoc b/proposals/VK_KHR_dynamic_rendering_local_read.adoc
index 0bfb8553..951e9769 100644
--- a/proposals/VK_KHR_dynamic_rendering_local_read.adoc
+++ b/proposals/VK_KHR_dynamic_rendering_local_read.adoc
@@ -189,7 +189,7 @@ NOTE: Some implementations may have to now provide a real descriptor when advert
=== Interactions with link:{refpage}VK_EXT_shader_object.html[VK_EXT_shader_object]
-If link:{refpage}VK_EXT_shader_object.html[VK_EXT_shader_object] is enabled, `vkCmdSetRenderingAttachmentLocationsKHR` and `vkCmdSetRenderingInputAttachmentIndicesKHR` are the the only way to set the remapping state; the respective structures do not need to be chained to shader object creation or match any static state.
+If link:{refpage}VK_EXT_shader_object.html[VK_EXT_shader_object] is enabled, `vkCmdSetRenderingAttachmentLocationsKHR` and `vkCmdSetRenderingInputAttachmentIndicesKHR` are the only way to set the remapping state; the respective structures do not need to be chained to shader object creation or match any static state.
=== Interactions with link:{refpage}VK_EXT_rasterization_order_attachment_access.html[VK_EXT_rasterization_order_attachment_access]
diff --git a/proposals/VK_KHR_fragment_shading_rate.adoc b/proposals/VK_KHR_fragment_shading_rate.adoc
index 4dda30ed..b8fdd1c3 100644
--- a/proposals/VK_KHR_fragment_shading_rate.adoc
+++ b/proposals/VK_KHR_fragment_shading_rate.adoc
@@ -26,9 +26,9 @@ However, this requires careful state management, and requires awkward sorting of
Different applications may want to change the rate per-draw, per-triangle, or per-screen-region.
While it would be possible to modify the behavior of sample shading to be modifiable at different rates to solve this, multisample state is relatively complex, and could result in tricky edge cases for some applications.
The alternative is to provide a new shading rate state that is independent of multisampling, and enable it to be set at each separate rate.
-In either case, per draw rate can be set by pipeline or dynamic state, but for per-triangle and per-screen-region use cases, new mechanisms will be needed. For per-triangle state, the usual way of setting this is in the API is by providing data along with the provoking vertex. For the screen regions, two main options are viable - either an associated image which has sub regions identifying the state, or providing some sort of equation to be applied across the screen.
+In either case, per draw rate can be set by pipeline or dynamic state, but for per-triangle and per-screen-region use cases, new mechanisms will be needed. For per-triangle state, the usual way of setting this in the API is by providing data along with the provoking vertex. For the screen regions, two main options are viable - either an associated image which has sub regions identifying the state, or providing some sort of equation to be applied across the screen.
-Due to the complexity and potential fragility of multisample state, this proposal introduces new shading rate state to the API. As not all known use cases for screen-region state can be expressed as an straightforward equation, per-image state allowing arbitrary expression of regions is preferred.
+Due to the complexity and potential fragility of multisample state, this proposal introduces new shading rate state to the API. As not all known use cases for screen-region state can be expressed as a straightforward equation, per-image state allowing arbitrary expression of regions is preferred.
== Proposal
diff --git a/proposals/VK_KHR_shader_maximal_reconvergence.adoc b/proposals/VK_KHR_shader_maximal_reconvergence.adoc
index 7b361e4e..f753b509 100644
--- a/proposals/VK_KHR_shader_maximal_reconvergence.adoc
+++ b/proposals/VK_KHR_shader_maximal_reconvergence.adoc
@@ -28,7 +28,7 @@ different devices (or even different drivers of the same device).
VK_KHR_shader_subgroup_uniform_control_flow provides stronger guarantees, but
still has some drawbacks from a shader author's point of view.
Shader authors would like to be able to reason about the divergence and
-reconvergence of invocations executing shaders written in a HLL and have that
+reconvergence of invocations executing shaders written in an HLL and have that
reasoning translate faithfully into SPIR-V.
== Solution Space
@@ -39,7 +39,7 @@ The following options were considered to address this issue:
divergence and reconvergence information directly in the shader.
2. Add new guarantees to SPIR-V (through a new execution mode) that guarantee
divergence and reconvergence in SPIR-V maps intuitively from the shader's
- representation in a HLL.
+ representation in an HLL.
The main advantage of option 1 is that is completely explicit.
The main disadvantage is it likely requires additional changes in HLL
diff --git a/proposals/VK_QCOM_image_processing.adoc b/proposals/VK_QCOM_image_processing.adoc
index 3bb90c2a..5b99458f 100644
--- a/proposals/VK_QCOM_image_processing.adoc
+++ b/proposals/VK_QCOM_image_processing.adoc
@@ -445,7 +445,7 @@ corresponds to one phase of the filter. The view's
`VkImageViewSampleWeightCreateInfoQCOM::numPhases`. The phases
are stored as layers in the 2D array, in horizontal phase major
order, left-to-right and top-to-bottom. Expressed as a formula,
-the layer index for a each filter phase is computed as:
+the layer index for each filter phase is computed as:
[source,c]
----
diff --git a/registry.adoc b/registry.adoc
index 46178987..1bff7330 100644
--- a/registry.adoc
+++ b/registry.adoc
@@ -558,14 +558,23 @@ The tag:member tag defines the type and name of a structure or union member.
* attr:values - only valid on the `sType` member of a struct.
This is a comma-separated list of enumerant values that are valid for
the structure type; usually there is only a single value.
- * attr:len - if the member is an array, len may be one or more of the
- following things, separated by commas (one for each array indirection):
- another member of that struct; `"null-terminated"` for a string; `"1"`
- to indicate it is just a pointer (used for nested pointers); or an
- equation in math markup for incorporation in the specification (a LaTeX
- math expression delimited by `latexmath:[` and `]`.
- The only variables in the equation should be the names of members of the
- structure.
+ * attr:len - valid length of the data described by the member.
+ If the member is a static array, attr:len must be less than or equal
+ to the size of the array; if not present for a static array, all
+ elements of the array are considered valid.
+ If the member is a pointer, attr:len is the length of the pointed-to
+ data.
+ attr:len must contain one or more expressions defining length (one for
+ each array indirection), separated by commas.
+ Each expression may be one of:
+ ** the name of another member of this struct
+ ** `"null-terminated"`, indicating a pointer to a null-terminated UTF-8
+ string
+ ** `"1"` to indicate it is just a pointer (used for nested pointers)
+ ** an equation in math markup for incorporation in the specification (a
+ LaTeX math expression delimited by `latexmath:[` and `]`.
+ The only variables in the equation should be the names of members of
+ the structure.
* attr:altlen - if the attr:len attribute is specified, and contains a
`latexmath:` equation, this attribute should be specified with an
equivalent equation using only C builtin operators, C math library
@@ -895,7 +904,7 @@ Each tag:enum tag defines a single Vulkan (or other API) token.
[NOTE]
.Note
====
-Using attr:alias on a tag:enum means you want the attr:name defined by the
+Using attr:alias on an tag:enum means you want the attr:name defined by the
tag to be treated as an alias of the token name in the attr:alias attribute
value.
For example, the following tag defines `VK_ALIAS` as an alias of `VK_VALUE`:
@@ -1139,14 +1148,23 @@ and union members.
This definition is only used if the requested API name matches the
attribute.
May be used to address subtle incompatibilities.
- * attr:len - if the param is an array, len may be one or more of the
- following things, separated by commas (one for each array indirection):
- another param of that command; `"null-terminated"` for a string; `"1"`
- to indicate it is just a pointer (used for nested pointers); or an
- equation in math markup for incorporation in the specification (a LaTeX
- math expression delimited by `latexmath:[` and `]`.
- The only variables in the equation should be the names of this or other
- parameters.
+ * attr:len - valid length of the data described by the parameter.
+ If the parameter is a static array, attr:len must be less than or equal
+ to the size of the array; if not present for a static array, all
+ elements of the array are considered valid.
+ If the parameter is a pointer, attr:len is the length of the pointed-to
+ data.
+ attr:len must contain one or more expressions defining length (one for
+ each array indirection), separated by commas.
+ Each expression may be one of:
+ ** the name of another parameter of this command
+ ** `"null-terminated"`, indicating a pointer to a null-terminated UTF-8
+ string
+ ** `"1"` to indicate it is just a pointer (used for nested pointers)
+ ** an equation in math markup for incorporation in the specification (a
+ LaTeX math expression delimited by `latexmath:[` and `]`.
+ The only variables in the equation should be the names of parameters of
+ the command.
* attr:altlen - if the attr:len attribute is specified, and contains a
`latexmath:` equation, this attribute should be specified with an
equivalent equation using only C builtin operators, C math library
@@ -1647,7 +1665,7 @@ Zero or more of the following tags, in any order:
=== Command Tags
-tag:command specifies an required (or removed) command defined in a
+tag:command specifies a required (or removed) command defined in a
tag:commands block.
The tag has no content, but contains attributes:
@@ -1658,7 +1676,7 @@ The tag has no content, but contains attributes:
=== Enum Tags
-tag:enum specifies an required (or removed) enumerant defined in a tag:enums
+tag:enum specifies a required (or removed) enumerant defined in an tag:enums
block.
All forms of this tag support the following attributes:
@@ -1681,10 +1699,10 @@ No attributes other than attr:name and attr:comment are supported for them.
tag:enum tags appearing inside tag:remove tags should always be reference
enums.
Reference enums may also be used inside tag:require tags, if the
-corresponding value is defined in a tag:enums block.
+corresponding value is defined in an tag:enums block.
This is typically used for constants not part of an enumerated type.
-_Extension enums_ define the value of an enumerant inline in an tag:feature
+_Extension enums_ define the value of an enumerant inline in a tag:feature
or tag:extensions block.
Typically these are used to add additional values specified by an extension
or core feature to an existing enumerated type.
@@ -1733,7 +1751,7 @@ enumerant:
It may also be used when token names have been changed as a result of
profile changes, or for consistency purposes.
* attr:protect - define a preprocessor protection symbol for the enum in
- the same fashion as a tag:enum tag in an <<tag-enum,tag:enums>> block.
+ the same fashion as an tag:enum tag in an <<tag-enum,tag:enums>> block.
Not all combinations of attributes are either meaningful or supported.
The attr:protect attribute may always be present.
@@ -2017,7 +2035,7 @@ extensions which are defined for the API.
== Contents of tag:spirvextensions Tags
Each tag:spirvextensions block contains zero or more tag:spirvextension tags, each
-describing an single SPIR-V extension, in arbitrary order.
+describing a single SPIR-V extension, in arbitrary order.
[[tag-spirvextension]]
@@ -2062,7 +2080,7 @@ capabilities which are defined for the API.
== Contents of tag:spirvcapabilities Tags
Each tag:spirvcapabilities block contains zero or more tag:spirvcapability
-tags, each describing an single SPIR-V capability, in arbitrary order.
+tags, each describing a single SPIR-V capability, in arbitrary order.
[[tag-spirvcapability]]
@@ -3031,6 +3049,9 @@ Changes to the `.xml` files and Python scripts are logged in GitHub history.
[[changelog]]
= Change Log
+ * 2024-01-31 - Specify the meaning of the tag:member attr:len attribute of
+ structure members when the member is a static array (internal issue
+ 3743).
* 2023-11-24 - Clarify that the `promotedto` relationship which may be
defined for <<tag-extension, tag:extension>> tags does not promise exact
API-level compatibility (internal issue 4819).
diff --git a/scripts/doctransformer.py b/scripts/doctransformer.py
index 3ccfa3ac..b41f3c90 100644
--- a/scripts/doctransformer.py
+++ b/scripts/doctransformer.py
@@ -349,7 +349,7 @@ class DocTransformer:
# accumulated.
# Test for a blockCommonTransform delimiter comment first, to avoid
- # treating it solely as a end-Paragraph marker comment.
+ # treating it solely as an end-Paragraph marker comment.
if line == blockCommonTransform:
# Starting or ending a pseudo-block for "common" VU statements.
self.endParaBlockTransform(line, vuBlock = True)
diff --git a/scripts/extensionmetadocgenerator.py b/scripts/extensionmetadocgenerator.py
index 37ad69c4..d50d6898 100644
--- a/scripts/extensionmetadocgenerator.py
+++ b/scripts/extensionmetadocgenerator.py
@@ -233,7 +233,7 @@ class Extension:
tagPrefix = '\n== '
tagSuffix = ''
else:
- # Use an bolded item list for the tag name
+ # Use a bolded item list for the tag name
tagPrefix = '*'
tagSuffix = '*::'
@@ -265,7 +265,7 @@ class Extension:
if not isRefpage:
write('[[' + self.name + ']]', file=fp)
- write('=== ' + self.name, file=fp)
+ write('== ' + self.name, file=fp)
write('', file=fp)
self.writeTag('Name String', '`' + self.name + '`', isRefpage, fp)
@@ -673,8 +673,14 @@ class ExtensionMetaDocOutputGenerator(OutputGenerator):
for name in sorted_keys:
ext = self.extensions[name]
- include = self.makeExtensionInclude(ext.name)
+ # Increase the leveloffset of the extension include so it is
+ # lower than the subsection (extension name) it belongs to
+ include = ':leveloffset: +1\n'
+ include += '\n' + self.makeExtensionInclude(ext.name) + '\n\n'
+ include += ':leveloffset: -1\n'
+
link = ' * ' + self.conventions.formatExtension(ext.name)
+
if ext.provisional == 'true':
write(self.conditionalExt(ext.name, include), file=provisional_extension_appendices_fp)
write(self.conditionalExt(ext.name, link), file=provisional_extension_appendices_toc_fp)
diff --git a/scripts/genvk.py b/scripts/genvk.py
index 6895adcb..f2aeddfe 100755
--- a/scripts/genvk.py
+++ b/scripts/genvk.py
@@ -52,7 +52,7 @@ def makeGenOpts(args):
by specified short names. The generator options incorporate the following
parameters:
- args is an parsed argument object; see below for the fields that are used."""
+ args is a parsed argument object; see below for the fields that are used."""
global genOpts
genOpts = {}
@@ -963,7 +963,7 @@ def genTarget(args):
the requested target and command line options.
This is encapsulated in a function so it can be profiled and/or timed.
- The args parameter is an parsed argument object containing the following
+ The args parameter is a parsed argument object containing the following
fields that are used:
- target - target to generate
diff --git a/scripts/indexExt.py b/scripts/indexExt.py
index ee0b76b3..88c41ee1 100755
--- a/scripts/indexExt.py
+++ b/scripts/indexExt.py
@@ -37,7 +37,7 @@ def listExts(vendor, ext, tag):
for name in sorted(ext[vendor]):
print(fmtString.format(name))
-# -extension name - may be a single extension name, a a space-separated list
+# -extension name - may be a single extension name, a space-separated list
# of names, or a regular expression.
if __name__ == '__main__':
parser = argparse.ArgumentParser()
diff --git a/scripts/interfacedocgenerator.py b/scripts/interfacedocgenerator.py
index 9f34bfc8..0c35f695 100644
--- a/scripts/interfacedocgenerator.py
+++ b/scripts/interfacedocgenerator.py
@@ -16,7 +16,7 @@ def interfaceDocSortKey(item):
class InterfaceDocGenerator(OutputGenerator):
"""InterfaceDocGenerator - subclass of OutputGenerator.
- Generates AsciiDoc includes of the interfaces added by a an API version
+ Generates AsciiDoc includes of the interfaces added by an API version
or extension."""
def __init__(self, *args, **kwargs):
diff --git a/scripts/parse_dependency.py b/scripts/parse_dependency.py
index e997da54..5d204959 100755
--- a/scripts/parse_dependency.py
+++ b/scripts/parse_dependency.py
@@ -83,7 +83,7 @@ def leafMarkupC(name):
opMarkupAsciidocMap = { '+' : 'and', ',' : 'or' }
def opMarkupAsciidoc(op):
- """Markup a operator as an asciidoc spec markup equivalent
+ """Markup an operator as an asciidoc spec markup equivalent
- op - operator ('+' or ',')"""
@@ -92,7 +92,7 @@ def opMarkupAsciidoc(op):
opMarkupCMap = { '+' : '&&', ',' : '||' }
def opMarkupC(op):
- """Markup a operator as an C language equivalent
+ """Markup an operator as a C language equivalent
- op - operator ('+' or ',')"""
diff --git a/scripts/validitygenerator.py b/scripts/validitygenerator.py
index bbe6512a..f9a9efc1 100755
--- a/scripts/validitygenerator.py
+++ b/scripts/validitygenerator.py
@@ -886,7 +886,7 @@ class ValidityOutputGenerator(OutputGenerator):
return self.makeEnumerantName(self.conventions.generate_structure_type_from_name(structname))
def makeStructureTypeValidity(self, structname):
- """Generate an validity line for the type value of a struct.
+ """Generate a validity line for the type value of a struct.
Creates VUID named like the member name.
"""
@@ -934,7 +934,7 @@ class ValidityOutputGenerator(OutputGenerator):
return entry
def makeStructureExtensionPointer(self, blockname, param):
- """Generate an validity line for the pointer chain member value of a struct."""
+ """Generate a validity line for the pointer chain member value of a struct."""
param_name = getElemName(param)
if param.get('validextensionstructs') is not None:
diff --git a/scripts/xml_consistency.py b/scripts/xml_consistency.py
index 91864dba..5f59a02a 100755
--- a/scripts/xml_consistency.py
+++ b/scripts/xml_consistency.py
@@ -94,6 +94,7 @@ CHECK_MEMBER_PNEXT_OPTIONAL_EXCEPTIONS = (
CHECK_ARRAY_ENUMERATION_RETURN_CODE_EXCEPTIONS = (
'vkGetDeviceFaultInfoEXT',
'vkEnumerateDeviceLayerProperties',
+ 'vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI',
)
# Exceptions to unknown structure type constants.
diff --git a/xml/registry.rnc b/xml/registry.rnc
index ce27ec00..9d27ae75 100644
--- a/xml/registry.rnc
+++ b/xml/registry.rnc
@@ -709,7 +709,7 @@ InterfaceElement =
# as a placeholder.
Integer = text
-# EnumName is an compile-time constant name
+# EnumName is a compile-time constant name
EnumName = text
# TypeName is an argument/return value C type name
diff --git a/xml/vk.xml b/xml/vk.xml
index 2dbad9ba..c8464a2e 100755
--- a/xml/vk.xml
+++ b/xml/vk.xml
@@ -175,7 +175,7 @@ branch of the member gitlab server.
#define <name>VKSC_API_VERSION_1_0</name> <type>VK_MAKE_API_VERSION</type>(VKSC_API_VARIANT, 1, 0, 0)// Patch version should always be set to 0</type>
<type api="vulkan" category="define">// Version of this file
-#define <name>VK_HEADER_VERSION</name> 277</type>
+#define <name>VK_HEADER_VERSION</name> 278</type>
<type api="vulkan" category="define" requires="VK_HEADER_VERSION">// Complete version of this file
#define <name>VK_HEADER_VERSION_COMPLETE</name> <type>VK_MAKE_API_VERSION</type>(0, 1, 3, VK_HEADER_VERSION)</type>
<type api="vulkansc" category="define">// Version of this file
@@ -502,7 +502,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type requires="VkVideoDecodeH264PictureLayoutFlagBitsKHR" category="bitmask">typedef <type>VkFlags</type> <name>VkVideoDecodeH264PictureLayoutFlagsKHR</name>;</type>
<comment>Video Encode Core extension</comment>
- <type category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeFlagsKHR</name>;</type>
+ <type requires="VkVideoEncodeFlagBitsKHR" category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeFlagsKHR</name>;</type>
<type requires="VkVideoEncodeUsageFlagBitsKHR" category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeUsageFlagsKHR</name>;</type>
<type requires="VkVideoEncodeContentFlagBitsKHR" category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeContentFlagsKHR</name>;</type>
<type requires="VkVideoEncodeCapabilityFlagBitsKHR" category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeCapabilityFlagsKHR</name>;</type>
@@ -902,6 +902,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<comment>Video H.265 Decode extensions</comment>
<comment>Video Encode extensions</comment>
+ <type name="VkVideoEncodeFlagBitsKHR" category="enum"/>
<type name="VkVideoEncodeUsageFlagBitsKHR" category="enum"/>
<type name="VkVideoEncodeContentFlagBitsKHR" category="enum"/>
<type name="VkVideoEncodeTuningModeKHR" category="enum"/>
@@ -1044,20 +1045,20 @@ typedef void* <name>MTLSharedEvent_id</name>;
<member limittype="noauto"><type>uint32_t</type> <name>vendorID</name></member>
<member limittype="noauto"><type>uint32_t</type> <name>deviceID</name></member>
<member limittype="noauto"><type>VkPhysicalDeviceType</type> <name>deviceType</name></member>
- <member limittype="noauto"><type>char</type> <name>deviceName</name>[<enum>VK_MAX_PHYSICAL_DEVICE_NAME_SIZE</enum>]</member>
+ <member limittype="noauto" len="null-terminated"><type>char</type> <name>deviceName</name>[<enum>VK_MAX_PHYSICAL_DEVICE_NAME_SIZE</enum>]</member>
<member limittype="noauto"><type>uint8_t</type> <name>pipelineCacheUUID</name>[<enum>VK_UUID_SIZE</enum>]</member>
<member limittype="struct"><type>VkPhysicalDeviceLimits</type> <name>limits</name></member>
<member limittype="struct"><type>VkPhysicalDeviceSparseProperties</type> <name>sparseProperties</name></member>
</type>
<type category="struct" name="VkExtensionProperties" returnedonly="true">
- <member><type>char</type> <name>extensionName</name>[<enum>VK_MAX_EXTENSION_NAME_SIZE</enum>]<comment>extension name</comment></member>
- <member><type>uint32_t</type> <name>specVersion</name><comment>version of the extension specification implemented</comment></member>
+ <member len="null-terminated"><type>char</type> <name>extensionName</name>[<enum>VK_MAX_EXTENSION_NAME_SIZE</enum>]<comment>extension name</comment></member>
+ <member><type>uint32_t</type> <name>specVersion</name><comment>version of the extension specification implemented</comment></member>
</type>
<type category="struct" name="VkLayerProperties" returnedonly="true">
- <member><type>char</type> <name>layerName</name>[<enum>VK_MAX_EXTENSION_NAME_SIZE</enum>]<comment>layer name</comment></member>
- <member><type>uint32_t</type> <name>specVersion</name><comment>version of the layer specification implemented</comment></member>
- <member><type>uint32_t</type> <name>implementationVersion</name><comment>build or release version of the layer's library</comment></member>
- <member><type>char</type> <name>description</name>[<enum>VK_MAX_DESCRIPTION_SIZE</enum>]<comment>Free-form description of the layer</comment></member>
+ <member len="null-terminated"><type>char</type> <name>layerName</name>[<enum>VK_MAX_EXTENSION_NAME_SIZE</enum>]<comment>layer name</comment></member>
+ <member><type>uint32_t</type> <name>specVersion</name><comment>version of the layer specification implemented</comment></member>
+ <member><type>uint32_t</type> <name>implementationVersion</name><comment>build or release version of the layer's library</comment></member>
+ <member len="null-terminated"><type>char</type> <name>description</name>[<enum>VK_MAX_DESCRIPTION_SIZE</enum>]<comment>Free-form description of the layer</comment></member>
</type>
<type category="struct" name="VkApplicationInfo">
<member values="VK_STRUCTURE_TYPE_APPLICATION_INFO"><type>VkStructureType</type> <name>sType</name></member>
@@ -1113,10 +1114,10 @@ typedef void* <name>MTLSharedEvent_id</name>;
<member limittype="min,mul"><type>VkExtent3D</type> <name>minImageTransferGranularity</name><comment>Minimum alignment requirement for image transfers</comment></member>
</type>
<type category="struct" name="VkPhysicalDeviceMemoryProperties" returnedonly="true">
- <member><type>uint32_t</type> <name>memoryTypeCount</name></member>
- <member><type>VkMemoryType</type> <name>memoryTypes</name>[<enum>VK_MAX_MEMORY_TYPES</enum>]</member>
- <member><type>uint32_t</type> <name>memoryHeapCount</name></member>
- <member><type>VkMemoryHeap</type> <name>memoryHeaps</name>[<enum>VK_MAX_MEMORY_HEAPS</enum>]</member>
+ <member><type>uint32_t</type> <name>memoryTypeCount</name></member>
+ <member len="memoryTypeCount"><type>VkMemoryType</type> <name>memoryTypes</name>[<enum>VK_MAX_MEMORY_TYPES</enum>]</member>
+ <member><type>uint32_t</type> <name>memoryHeapCount</name></member>
+ <member len="memoryHeapCount"><type>VkMemoryHeap</type> <name>memoryHeaps</name>[<enum>VK_MAX_MEMORY_HEAPS</enum>]</member>
</type>
<type category="struct" name="VkMemoryAllocateInfo">
<member values="VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
@@ -2595,8 +2596,8 @@ typedef void* <name>MTLSharedEvent_id</name>;
<member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true"><type>void</type>* <name>pNext</name></member>
<member limittype="exact"><type>VkDriverId</type> <name>driverID</name></member>
- <member limittype="exact"><type>char</type> <name>driverName</name>[<enum>VK_MAX_DRIVER_NAME_SIZE</enum>]</member>
- <member limittype="exact"><type>char</type> <name>driverInfo</name>[<enum>VK_MAX_DRIVER_INFO_SIZE</enum>]</member>
+ <member limittype="exact" len="null-terminated"><type>char</type> <name>driverName</name>[<enum>VK_MAX_DRIVER_NAME_SIZE</enum>]</member>
+ <member limittype="exact" len="null-terminated"><type>char</type> <name>driverInfo</name>[<enum>VK_MAX_DRIVER_INFO_SIZE</enum>]</member>
<member limittype="exact"><type>VkConformanceVersion</type> <name>conformanceVersion</name></member>
</type>
<type category="struct" name="VkPhysicalDeviceDriverPropertiesKHR" alias="VkPhysicalDeviceDriverProperties"/>
@@ -3027,7 +3028,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true"><type>void</type>* <name>pNext</name></member>
<member><type>uint32_t</type> <name>physicalDeviceCount</name></member>
- <member><type>VkPhysicalDevice</type> <name>physicalDevices</name>[<enum>VK_MAX_DEVICE_GROUP_SIZE</enum>]</member>
+ <member len="physicalDeviceCount"><type>VkPhysicalDevice</type> <name>physicalDevices</name>[<enum>VK_MAX_DEVICE_GROUP_SIZE</enum>]</member>
<member><type>VkBool32</type> <name>subsetAllocation</name></member>
</type>
<type category="struct" name="VkPhysicalDeviceGroupPropertiesKHR" alias="VkPhysicalDeviceGroupProperties"/>
@@ -3310,7 +3311,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type category="struct" name="VkPhysicalDeviceSurfaceInfo2KHR">
<member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member optional="true"><type>VkSurfaceKHR</type> <name>surface</name></member>
+ <member noautovalidity="true" optional="true"><type>VkSurfaceKHR</type> <name>surface</name></member>
</type>
<type category="struct" name="VkSurfaceCapabilities2KHR" returnedonly="true">
<member values="VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR"><type>VkStructureType</type> <name>sType</name></member>
@@ -3841,11 +3842,11 @@ typedef void* <name>MTLSharedEvent_id</name>;
<member><type>VkBool32</type> <name>globalPriorityQuery</name></member>
</type>
<type category="struct" name="VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT" alias="VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR"/>
- <type category="struct" name="VkQueueFamilyGlobalPriorityPropertiesKHR" structextends="VkQueueFamilyProperties2">
+ <type category="struct" name="VkQueueFamilyGlobalPriorityPropertiesKHR" structextends="VkQueueFamilyProperties2" returnedonly="true">
<member values="VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member limittype="max"><type>uint32_t</type> <name>priorityCount</name></member>
- <member limittype="bitmask"><type>VkQueueGlobalPriorityKHR</type> <name>priorities</name>[<enum>VK_MAX_GLOBAL_PRIORITY_SIZE_KHR</enum>]</member>
+ <member optional="true"><type>void</type>* <name>pNext</name></member>
+ <member limittype="max"><type>uint32_t</type> <name>priorityCount</name></member>
+ <member limittype="bitmask" len="priorityCount"><type>VkQueueGlobalPriorityKHR</type> <name>priorities</name>[<enum>VK_MAX_GLOBAL_PRIORITY_SIZE_KHR</enum>]</member>
</type>
<type category="struct" name="VkQueueFamilyGlobalPriorityPropertiesEXT" alias="VkQueueFamilyGlobalPriorityPropertiesKHR"/>
<type category="struct" name="VkDebugUtilsObjectNameInfoEXT" structextends="VkPipelineShaderStageCreateInfo">
@@ -5120,9 +5121,9 @@ typedef void* <name>MTLSharedEvent_id</name>;
<member values="VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true"><type>void</type>* <name>pNext</name></member>
<member optional="true"><type>VkPerformanceCounterDescriptionFlagsKHR</type> <name>flags</name></member>
- <member><type>char</type> <name>name</name>[<enum>VK_MAX_DESCRIPTION_SIZE</enum>]</member>
- <member><type>char</type> <name>category</name>[<enum>VK_MAX_DESCRIPTION_SIZE</enum>]</member>
- <member><type>char</type> <name>description</name>[<enum>VK_MAX_DESCRIPTION_SIZE</enum>]</member>
+ <member len="null-terminated"><type>char</type> <name>name</name>[<enum>VK_MAX_DESCRIPTION_SIZE</enum>]</member>
+ <member len="null-terminated"><type>char</type> <name>category</name>[<enum>VK_MAX_DESCRIPTION_SIZE</enum>]</member>
+ <member len="null-terminated"><type>char</type> <name>description</name>[<enum>VK_MAX_DESCRIPTION_SIZE</enum>]</member>
</type>
<type category="struct" name="VkQueryPoolPerformanceCreateInfoKHR" structextends="VkQueryPoolCreateInfo">
<member values="VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
@@ -5191,7 +5192,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<member selection="VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL"><type>VkBool32</type> <name>valueBool</name></member>
<member selection="VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL" len="null-terminated">const <type>char</type>* <name>valueString</name></member>
</type>
- <type category="struct" name="VkPerformanceValueINTEL">
+ <type category="struct" name="VkPerformanceValueINTEL" returnedonly="true">
<member><type>VkPerformanceValueTypeINTEL</type> <name>type</name></member>
<member selector="type" noautovalidity="true"><type>VkPerformanceValueDataINTEL</type> <name>data</name></member>
</type>
@@ -5297,10 +5298,10 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type category="struct" name="VkPipelineExecutablePropertiesKHR" returnedonly="true">
<member values="VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>VkShaderStageFlags</type> <name>stages</name></member>
- <member><type>char</type> <name>name</name>[<enum>VK_MAX_DESCRIPTION_SIZE</enum>]</member>
- <member><type>char</type> <name>description</name>[<enum>VK_MAX_DESCRIPTION_SIZE</enum>]</member>
- <member><type>uint32_t</type> <name>subgroupSize</name></member>
+ <member><type>VkShaderStageFlags</type> <name>stages</name></member>
+ <member len="null-terminated"><type>char</type> <name>name</name>[<enum>VK_MAX_DESCRIPTION_SIZE</enum>]</member>
+ <member len="null-terminated"><type>char</type> <name>description</name>[<enum>VK_MAX_DESCRIPTION_SIZE</enum>]</member>
+ <member><type>uint32_t</type> <name>subgroupSize</name></member>
</type>
<type category="struct" name="VkPipelineExecutableInfoKHR">
<member values="VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
@@ -5316,19 +5317,19 @@ typedef void* <name>MTLSharedEvent_id</name>;
</type>
<type category="struct" name="VkPipelineExecutableStatisticKHR" returnedonly="true">
<member values="VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>char</type> <name>name</name>[<enum>VK_MAX_DESCRIPTION_SIZE</enum>]</member>
- <member><type>char</type> <name>description</name>[<enum>VK_MAX_DESCRIPTION_SIZE</enum>]</member>
+ <member optional="true"><type>void</type>* <name>pNext</name></member>
+ <member len="null-terminated"><type>char</type> <name>name</name>[<enum>VK_MAX_DESCRIPTION_SIZE</enum>]</member>
+ <member len="null-terminated"><type>char</type> <name>description</name>[<enum>VK_MAX_DESCRIPTION_SIZE</enum>]</member>
<member><type>VkPipelineExecutableStatisticFormatKHR</type> <name>format</name></member>
<member selector="format" noautovalidity="true"><type>VkPipelineExecutableStatisticValueKHR</type> <name>value</name></member>
</type>
<type category="struct" name="VkPipelineExecutableInternalRepresentationKHR" returnedonly="true">
<member values="VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>char</type> <name>name</name>[<enum>VK_MAX_DESCRIPTION_SIZE</enum>]</member>
- <member><type>char</type> <name>description</name>[<enum>VK_MAX_DESCRIPTION_SIZE</enum>]</member>
- <member><type>VkBool32</type> <name>isText</name></member>
- <member><type>size_t</type> <name>dataSize</name></member>
+ <member optional="true"><type>void</type>* <name>pNext</name></member>
+ <member len="null-terminated"><type>char</type> <name>name</name>[<enum>VK_MAX_DESCRIPTION_SIZE</enum>]</member>
+ <member len="null-terminated"><type>char</type> <name>description</name>[<enum>VK_MAX_DESCRIPTION_SIZE</enum>]</member>
+ <member><type>VkBool32</type> <name>isText</name></member>
+ <member><type>size_t</type> <name>dataSize</name></member>
<member optional="true" len="dataSize"><type>void</type>* <name>pData</name></member>
</type>
<type category="struct" name="VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
@@ -5374,7 +5375,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
</type>
<type category="struct" name="VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT" alias="VkPipelineShaderStageRequiredSubgroupSizeCreateInfo"/>
<type category="struct" name="VkShaderRequiredSubgroupSizeCreateInfoEXT" alias="VkPipelineShaderStageRequiredSubgroupSizeCreateInfo"/>
- <type category="struct" name="VkSubpassShadingPipelineCreateInfoHUAWEI" returnedonly="true" structextends="VkComputePipelineCreateInfo">
+ <type category="struct" name="VkSubpassShadingPipelineCreateInfoHUAWEI" structextends="VkComputePipelineCreateInfo">
<member values="VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true"><type>void</type>* <name>pNext</name></member>
<member><type>VkRenderPass</type> <name>renderPass</name></member>
@@ -5527,56 +5528,56 @@ typedef void* <name>MTLSharedEvent_id</name>;
<member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true"><type>void</type>* <name>pNext</name></member>
<member limittype="noauto"><type>VkDriverId</type> <name>driverID</name></member>
- <member limittype="noauto"><type>char</type> <name>driverName</name>[<enum>VK_MAX_DRIVER_NAME_SIZE</enum>]</member>
- <member limittype="noauto"><type>char</type> <name>driverInfo</name>[<enum>VK_MAX_DRIVER_INFO_SIZE</enum>]</member>
+ <member limittype="noauto" len="null-terminated"><type>char</type> <name>driverName</name>[<enum>VK_MAX_DRIVER_NAME_SIZE</enum>]</member>
+ <member limittype="noauto" len="null-terminated"><type>char</type> <name>driverInfo</name>[<enum>VK_MAX_DRIVER_INFO_SIZE</enum>]</member>
<member limittype="noauto"><type>VkConformanceVersion</type> <name>conformanceVersion</name></member>
<member limittype="exact"><type>VkShaderFloatControlsIndependence</type> <name>denormBehaviorIndependence</name></member>
<member limittype="exact"><type>VkShaderFloatControlsIndependence</type> <name>roundingModeIndependence</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>shaderSignedZeroInfNanPreserveFloat16</name><comment>An implementation can preserve signed zero, nan, inf</comment></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>shaderSignedZeroInfNanPreserveFloat32</name><comment>An implementation can preserve signed zero, nan, inf</comment></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>shaderSignedZeroInfNanPreserveFloat64</name><comment>An implementation can preserve signed zero, nan, inf</comment></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>shaderDenormPreserveFloat16</name><comment>An implementation can preserve denormals</comment></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>shaderDenormPreserveFloat32</name><comment>An implementation can preserve denormals</comment></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>shaderDenormPreserveFloat64</name><comment>An implementation can preserve denormals</comment></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>shaderDenormFlushToZeroFloat16</name><comment>An implementation can flush to zero denormals</comment></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>shaderDenormFlushToZeroFloat32</name><comment>An implementation can flush to zero denormals</comment></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>shaderDenormFlushToZeroFloat64</name><comment>An implementation can flush to zero denormals</comment></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>shaderRoundingModeRTEFloat16</name><comment>An implementation can support RTE</comment></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>shaderRoundingModeRTEFloat32</name><comment>An implementation can support RTE</comment></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>shaderRoundingModeRTEFloat64</name><comment>An implementation can support RTE</comment></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>shaderRoundingModeRTZFloat16</name><comment>An implementation can support RTZ</comment></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>shaderRoundingModeRTZFloat32</name><comment>An implementation can support RTZ</comment></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>shaderRoundingModeRTZFloat64</name><comment>An implementation can support RTZ</comment></member>
- <member limittype="max"><type>uint32_t</type> <name>maxUpdateAfterBindDescriptorsInAllPools</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>shaderUniformBufferArrayNonUniformIndexingNative</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>shaderSampledImageArrayNonUniformIndexingNative</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>shaderStorageBufferArrayNonUniformIndexingNative</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>shaderStorageImageArrayNonUniformIndexingNative</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>shaderInputAttachmentArrayNonUniformIndexingNative</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>robustBufferAccessUpdateAfterBind</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>quadDivergentImplicitLod</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxPerStageDescriptorUpdateAfterBindSamplers</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxPerStageDescriptorUpdateAfterBindUniformBuffers</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxPerStageDescriptorUpdateAfterBindStorageBuffers</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxPerStageDescriptorUpdateAfterBindSampledImages</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxPerStageDescriptorUpdateAfterBindStorageImages</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxPerStageDescriptorUpdateAfterBindInputAttachments</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxPerStageUpdateAfterBindResources</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxDescriptorSetUpdateAfterBindSamplers</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxDescriptorSetUpdateAfterBindUniformBuffers</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxDescriptorSetUpdateAfterBindUniformBuffersDynamic</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxDescriptorSetUpdateAfterBindStorageBuffers</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxDescriptorSetUpdateAfterBindStorageBuffersDynamic</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxDescriptorSetUpdateAfterBindSampledImages</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxDescriptorSetUpdateAfterBindStorageImages</name></member>
- <member limittype="max"><type>uint32_t</type> <name>maxDescriptorSetUpdateAfterBindInputAttachments</name></member>
- <member limittype="bitmask"><type>VkResolveModeFlags</type> <name>supportedDepthResolveModes</name><comment>supported depth resolve modes</comment></member>
- <member limittype="bitmask"><type>VkResolveModeFlags</type> <name>supportedStencilResolveModes</name><comment>supported stencil resolve modes</comment></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>independentResolveNone</name><comment>depth and stencil resolve modes can be set independently if one of them is none</comment></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>independentResolve</name><comment>depth and stencil resolve modes can be set independently</comment></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>filterMinmaxSingleComponentFormats</name></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>filterMinmaxImageComponentMapping</name></member>
- <member limittype="max"><type>uint64_t</type> <name>maxTimelineSemaphoreValueDifference</name></member>
+ <member limittype="bitmask"><type>VkBool32</type> <name>shaderSignedZeroInfNanPreserveFloat16</name><comment>An implementation can preserve signed zero, nan, inf</comment></member>
+ <member limittype="bitmask"><type>VkBool32</type> <name>shaderSignedZeroInfNanPreserveFloat32</name><comment>An implementation can preserve signed zero, nan, inf</comment></member>
+ <member limittype="bitmask"><type>VkBool32</type> <name>shaderSignedZeroInfNanPreserveFloat64</name><comment>An implementation can preserve signed zero, nan, inf</comment></member>
+ <member limittype="bitmask"><type>VkBool32</type> <name>shaderDenormPreserveFloat16</name><comment>An implementation can preserve denormals</comment></member>
+ <member limittype="bitmask"><type>VkBool32</type> <name>shaderDenormPreserveFloat32</name><comment>An implementation can preserve denormals</comment></member>
+ <member limittype="bitmask"><type>VkBool32</type> <name>shaderDenormPreserveFloat64</name><comment>An implementation can preserve denormals</comment></member>
+ <member limittype="bitmask"><type>VkBool32</type> <name>shaderDenormFlushToZeroFloat16</name><comment>An implementation can flush to zero denormals</comment></member>
+ <member limittype="bitmask"><type>VkBool32</type> <name>shaderDenormFlushToZeroFloat32</name><comment>An implementation can flush to zero denormals</comment></member>
+ <member limittype="bitmask"><type>VkBool32</type> <name>shaderDenormFlushToZeroFloat64</name><comment>An implementation can flush to zero denormals</comment></member>
+ <member limittype="bitmask"><type>VkBool32</type> <name>shaderRoundingModeRTEFloat16</name><comment>An implementation can support RTE</comment></member>
+ <member limittype="bitmask"><type>VkBool32</type> <name>shaderRoundingModeRTEFloat32</name><comment>An implementation can support RTE</comment></member>
+ <member limittype="bitmask"><type>VkBool32</type> <name>shaderRoundingModeRTEFloat64</name><comment>An implementation can support RTE</comment></member>
+ <member limittype="bitmask"><type>VkBool32</type> <name>shaderRoundingModeRTZFloat16</name><comment>An implementation can support RTZ</comment></member>
+ <member limittype="bitmask"><type>VkBool32</type> <name>shaderRoundingModeRTZFloat32</name><comment>An implementation can support RTZ</comment></member>
+ <member limittype="bitmask"><type>VkBool32</type> <name>shaderRoundingModeRTZFloat64</name><comment>An implementation can support RTZ</comment></member>
+ <member limittype="max"><type>uint32_t</type> <name>maxUpdateAfterBindDescriptorsInAllPools</name></member>
+ <member limittype="bitmask"><type>VkBool32</type> <name>shaderUniformBufferArrayNonUniformIndexingNative</name></member>
+ <member limittype="bitmask"><type>VkBool32</type> <name>shaderSampledImageArrayNonUniformIndexingNative</name></member>
+ <member limittype="bitmask"><type>VkBool32</type> <name>shaderStorageBufferArrayNonUniformIndexingNative</name></member>
+ <member limittype="bitmask"><type>VkBool32</type> <name>shaderStorageImageArrayNonUniformIndexingNative</name></member>
+ <member limittype="bitmask"><type>VkBool32</type> <name>shaderInputAttachmentArrayNonUniformIndexingNative</name></member>
+ <member limittype="bitmask"><type>VkBool32</type> <name>robustBufferAccessUpdateAfterBind</name></member>
+ <member limittype="bitmask"><type>VkBool32</type> <name>quadDivergentImplicitLod</name></member>
+ <member limittype="max"><type>uint32_t</type> <name>maxPerStageDescriptorUpdateAfterBindSamplers</name></member>
+ <member limittype="max"><type>uint32_t</type> <name>maxPerStageDescriptorUpdateAfterBindUniformBuffers</name></member>
+ <member limittype="max"><type>uint32_t</type> <name>maxPerStageDescriptorUpdateAfterBindStorageBuffers</name></member>
+ <member limittype="max"><type>uint32_t</type> <name>maxPerStageDescriptorUpdateAfterBindSampledImages</name></member>
+ <member limittype="max"><type>uint32_t</type> <name>maxPerStageDescriptorUpdateAfterBindStorageImages</name></member>
+ <member limittype="max"><type>uint32_t</type> <name>maxPerStageDescriptorUpdateAfterBindInputAttachments</name></member>
+ <member limittype="max"><type>uint32_t</type> <name>maxPerStageUpdateAfterBindResources</name></member>
+ <member limittype="max"><type>uint32_t</type> <name>maxDescriptorSetUpdateAfterBindSamplers</name></member>
+ <member limittype="max"><type>uint32_t</type> <name>maxDescriptorSetUpdateAfterBindUniformBuffers</name></member>
+ <member limittype="max"><type>uint32_t</type> <name>maxDescriptorSetUpdateAfterBindUniformBuffersDynamic</name></member>
+ <member limittype="max"><type>uint32_t</type> <name>maxDescriptorSetUpdateAfterBindStorageBuffers</name></member>
+ <member limittype="max"><type>uint32_t</type> <name>maxDescriptorSetUpdateAfterBindStorageBuffersDynamic</name></member>
+ <member limittype="max"><type>uint32_t</type> <name>maxDescriptorSetUpdateAfterBindSampledImages</name></member>
+ <member limittype="max"><type>uint32_t</type> <name>maxDescriptorSetUpdateAfterBindStorageImages</name></member>
+ <member limittype="max"><type>uint32_t</type> <name>maxDescriptorSetUpdateAfterBindInputAttachments</name></member>
+ <member limittype="bitmask"><type>VkResolveModeFlags</type> <name>supportedDepthResolveModes</name><comment>supported depth resolve modes</comment></member>
+ <member limittype="bitmask"><type>VkResolveModeFlags</type> <name>supportedStencilResolveModes</name><comment>supported stencil resolve modes</comment></member>
+ <member limittype="bitmask"><type>VkBool32</type> <name>independentResolveNone</name><comment>depth and stencil resolve modes can be set independently if one of them is none</comment></member>
+ <member limittype="bitmask"><type>VkBool32</type> <name>independentResolve</name><comment>depth and stencil resolve modes can be set independently</comment></member>
+ <member limittype="bitmask"><type>VkBool32</type> <name>filterMinmaxSingleComponentFormats</name></member>
+ <member limittype="bitmask"><type>VkBool32</type> <name>filterMinmaxImageComponentMapping</name></member>
+ <member limittype="max"><type>uint64_t</type> <name>maxTimelineSemaphoreValueDifference</name></member>
<member limittype="bitmask" optional="true"><type>VkSampleCountFlags</type> <name>framebufferIntegerColorSampleCounts</name></member>
</type>
<type category="struct" name="VkPhysicalDeviceVulkan13Features" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
@@ -5672,12 +5673,12 @@ typedef void* <name>MTLSharedEvent_id</name>;
</type>
<type category="struct" name="VkPhysicalDeviceToolProperties" returnedonly="true">
<member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member><type>char</type> <name>name</name>[<enum>VK_MAX_EXTENSION_NAME_SIZE</enum>]</member>
- <member><type>char</type> <name>version</name>[<enum>VK_MAX_EXTENSION_NAME_SIZE</enum>]</member>
- <member><type>VkToolPurposeFlags</type> <name>purposes</name></member>
- <member><type>char</type> <name>description</name>[<enum>VK_MAX_DESCRIPTION_SIZE</enum>]</member>
- <member><type>char</type> <name>layer</name>[<enum>VK_MAX_EXTENSION_NAME_SIZE</enum>]</member>
+ <member optional="true"><type>void</type>* <name>pNext</name></member>
+ <member len="null-terminated"><type>char</type> <name>name</name>[<enum>VK_MAX_EXTENSION_NAME_SIZE</enum>]</member>
+ <member len="null-terminated"><type>char</type> <name>version</name>[<enum>VK_MAX_EXTENSION_NAME_SIZE</enum>]</member>
+ <member><type>VkToolPurposeFlags</type> <name>purposes</name></member>
+ <member len="null-terminated"><type>char</type> <name>description</name>[<enum>VK_MAX_DESCRIPTION_SIZE</enum>]</member>
+ <member len="null-terminated"><type>char</type> <name>layer</name>[<enum>VK_MAX_EXTENSION_NAME_SIZE</enum>]</member>
</type>
<type category="struct" name="VkPhysicalDeviceToolPropertiesEXT" alias="VkPhysicalDeviceToolProperties"/>
<type category="struct" name="VkSamplerCustomBorderColorCreateInfoEXT" structextends="VkSamplerCreateInfo">
@@ -7936,7 +7937,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<member values="VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true"><type>void</type>* <name>pNext</name></member>
<member noautovalidity="true"><type>uint32_t</type> <name>identifierSize</name></member>
- <member><type>uint8_t</type> <name>identifier</name>[<enum>VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT</enum>]</member>
+ <member len="identifierSize"><type>uint8_t</type> <name>identifier</name>[<enum>VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT</enum>]</member>
</type>
<type category="struct" name="VkImageCompressionControlEXT" structextends="VkImageCreateInfo,VkSwapchainCreateInfoKHR,VkPhysicalDeviceImageFormatInfo2">
<member values="VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT"><type>VkStructureType</type> <name>sType</name></member>
@@ -7988,7 +7989,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
</type>
<type category="struct" name="VkRenderPassSubpassFeedbackInfoEXT" returnedonly="true">
<member><type>VkSubpassMergeStatusEXT</type> <name>subpassMergeStatus</name></member>
- <member><type>char</type> <name>description</name>[<enum>VK_MAX_DESCRIPTION_SIZE</enum>]</member>
+ <member len="null-terminated"><type>char</type> <name>description</name>[<enum>VK_MAX_DESCRIPTION_SIZE</enum>]</member>
<member><type>uint32_t</type> <name>postMergeIndex</name></member>
</type>
<type category="struct" name="VkRenderPassSubpassFeedbackCreateInfoEXT" structextends="VkSubpassDescription2">
@@ -8381,9 +8382,9 @@ typedef void* <name>MTLSharedEvent_id</name>;
<member><type>VkDeviceSize</type> <name>addressPrecision</name></member>
</type>
<type category="struct" name="VkDeviceFaultVendorInfoEXT">
- <member noautovalidity="true"><type>char</type> <name>description</name>[<enum>VK_MAX_DESCRIPTION_SIZE</enum>]<comment>Free-form description of the fault</comment></member>
- <member><type>uint64_t</type> <name>vendorFaultCode</name></member>
- <member><type>uint64_t</type> <name>vendorFaultData</name></member>
+ <member noautovalidity="true" len="null-terminated"><type>char</type> <name>description</name>[<enum>VK_MAX_DESCRIPTION_SIZE</enum>]<comment>Free-form description of the fault</comment></member>
+ <member><type>uint64_t</type> <name>vendorFaultCode</name></member>
+ <member><type>uint64_t</type> <name>vendorFaultData</name></member>
</type>
<type category="struct" name="VkDeviceFaultCountsEXT">
<member values="VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT"><type>VkStructureType</type> <name>sType</name></member>
@@ -8394,11 +8395,11 @@ typedef void* <name>MTLSharedEvent_id</name>;
</type>
<type category="struct" name="VkDeviceFaultInfoEXT" returnedonly="true">
<member values="VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
- <member noautovalidity="true"><type>char</type> <name>description</name>[<enum>VK_MAX_DESCRIPTION_SIZE</enum>]<comment>Free-form description of the fault</comment></member>
- <member optional="true"><type>VkDeviceFaultAddressInfoEXT</type>* <name>pAddressInfos</name></member>
- <member optional="true"><type>VkDeviceFaultVendorInfoEXT</type>* <name>pVendorInfos</name></member>
- <member optional="true"><type>void</type>* <name>pVendorBinaryData</name></member>
+ <member optional="true"><type>void</type>* <name>pNext</name></member>
+ <member noautovalidity="true" len="null-terminated"><type>char</type> <name>description</name>[<enum>VK_MAX_DESCRIPTION_SIZE</enum>]<comment>Free-form description of the fault</comment></member>
+ <member optional="true"><type>VkDeviceFaultAddressInfoEXT</type>* <name>pAddressInfos</name></member>
+ <member optional="true"><type>VkDeviceFaultVendorInfoEXT</type>* <name>pVendorInfos</name></member>
+ <member optional="true"><type>void</type>* <name>pVendorBinaryData</name></member>
</type>
<type category="struct" name="VkDeviceFaultVendorBinaryHeaderVersionOneEXT">
<comment>The fields in this structure are non-normative since structure packing is implementation-defined in C. The specification defines the normative layout.</comment>
@@ -8937,7 +8938,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<member optional="true"><type>uint32_t</type> <name>timingCount</name></member>
<member optional="true" len="timingCount"><type>VkLatencyTimingsFrameReportNV</type>* <name>pTimings</name></member>
</type>
- <type category="struct" name="VkLatencyTimingsFrameReportNV">
+ <type category="struct" name="VkLatencyTimingsFrameReportNV" returnedonly="true">
<member values="VK_STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true" noautovalidity="true">const <type>void</type>* <name>pNext</name></member>
<member><type>uint64_t</type> <name>presentID</name></member>
@@ -9080,6 +9081,11 @@ typedef void* <name>MTLSharedEvent_id</name>;
<member optional="true" noautovalidity="true"><type>void</type>* <name>pNext</name></member>
<member><type>VkBool32</type> <name>shaderQuadControl</name></member>
</type>
+ <type category="struct" name="VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
+ <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV"><type>VkStructureType</type> <name>sType</name></member>
+ <member optional="true"><type>void</type>* <name>pNext</name></member>
+ <member><type>VkBool32</type> <name>shaderFloat16VectorAtomics</name></member>
+ </type>
<type category="struct" name="VkPhysicalDeviceMapMemoryPlacedFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
<member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true"><type>void</type>* <name>pNext</name></member>
@@ -10821,6 +10827,8 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enum bitpos="0" name="VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR"/>
<enum bitpos="1" name="VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR"/>
</enums>
+ <enums name="VkVideoEncodeFlagBitsKHR" type="bitmask">
+ </enums>
<enums name="VkVideoEncodeUsageFlagBitsKHR" type="bitmask">
<enum value="0" name="VK_VIDEO_ENCODE_USAGE_DEFAULT_KHR"/>
<enum bitpos="0" name="VK_VIDEO_ENCODE_USAGE_TRANSCODING_BIT_KHR"/>
@@ -11728,11 +11736,11 @@ typedef void* <name>MTLSharedEvent_id</name>;
<param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
<param len="createInfoCount"><type>VkPipeline</type>* <name>pPipelines</name></param>
</command>
- <command successcodes="VK_SUCCESS,VK_INCOMPLETE" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_SURFACE_LOST_KHR">
+ <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_SURFACE_LOST_KHR">
<proto><type>VkResult</type> <name>vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI</name></proto>
<param><type>VkDevice</type> <name>device</name></param>
<param><type>VkRenderPass</type> <name>renderpass</name></param>
- <param><type>VkExtent2D</type>* <name>pMaxWorkgroupSize</name></param>
+ <param len="1"><type>VkExtent2D</type>* <name>pMaxWorkgroupSize</name></param>
</command>
<command>
<proto><type>void</type> <name>vkDestroyPipeline</name></proto>
@@ -15203,7 +15211,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<param><type>VkDevice</type> <name>device</name></param>
<param>const <type>VkMemoryUnmapInfoKHR</type>* <name>pMemoryUnmapInfo</name></param>
</command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INITIALIZATION_FAILED,VK_ERROR_INCOMPATIBLE_SHADER_BINARY_EXT">
+ <command successcodes="VK_SUCCESS,VK_INCOMPATIBLE_SHADER_BINARY_EXT" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INITIALIZATION_FAILED">
<proto><type>VkResult</type> <name>vkCreateShadersEXT</name></proto>
<param><type>VkDevice</type> <name>device</name></param>
<param><type>uint32_t</type> <name>createInfoCount</name></param>
@@ -23403,7 +23411,8 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enum extnumber="353" offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT"/>
<enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_SHADER_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT" alias="VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO"/>
<enum offset="0" extends="VkObjectType" name="VK_OBJECT_TYPE_SHADER_EXT"/>
- <enum offset="0" extends="VkResult" name="VK_ERROR_INCOMPATIBLE_SHADER_BINARY_EXT"/>
+ <enum offset="0" extends="VkResult" name="VK_INCOMPATIBLE_SHADER_BINARY_EXT"/>
+ <enum extends="VkResult" name="VK_ERROR_INCOMPATIBLE_SHADER_BINARY_EXT" alias="VK_INCOMPATIBLE_SHADER_BINARY_EXT" deprecated="aliased"/>
<type name="VkShaderEXT"/>
<type name="VkShaderCreateFlagBitsEXT"/>
<type name="VkShaderCreateFlagsEXT"/>
@@ -23623,6 +23632,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<require>
<enum value="0" name="VK_NV_EXTENSION_492_SPEC_VERSION"/>
<enum value="&quot;VK_NV_extension_492&quot;" name="VK_NV_EXTENSION_492_EXTENSION_NAME"/>
+ <enum bitpos="44" extends="VkPipelineStageFlagBits2" name="VK_PIPELINE_STAGE_2_RESERVED_44_BIT_NV"/>
</require>
</extension>
<extension name="VK_NV_extended_sparse_address_space" number="493" type="device" author="NV" contact="Russell Chou @russellcnv" supported="vulkan">
@@ -24188,6 +24198,16 @@ typedef void* <name>MTLSharedEvent_id</name>;
<require>
<enum value="0" name="VK_KHR_EXTENSION_554_SPEC_VERSION"/>
<enum value="&quot;VK_KHR_extension_554&quot;" name="VK_KHR_EXTENSION_554_EXTENSION_NAME"/>
+ <enum bitpos="2" extends="VkVideoEncodeCapabilityFlagBitsKHR" name="VK_VIDEO_ENCODE_CAPABILITY_RESERVED_2_BIT_KHR"/>
+ <enum bitpos="3" extends="VkVideoEncodeCapabilityFlagBitsKHR" name="VK_VIDEO_ENCODE_CAPABILITY_RESERVED_3_BIT_KHR"/>
+ <enum bitpos="3" extends="VkVideoSessionCreateFlagBitsKHR" name="VK_VIDEO_SESSION_CREATE_RESERVED_3_BIT_KHR"/>
+ <enum bitpos="4" extends="VkVideoSessionCreateFlagBitsKHR" name="VK_VIDEO_SESSION_CREATE_RESERVED_4_BIT_KHR"/>
+ <enum bitpos="0" extends="VkVideoEncodeFlagBitsKHR" name="VK_VIDEO_ENCODE_RESERVED_0_BIT_KHR"/>
+ <enum bitpos="1" extends="VkVideoEncodeFlagBitsKHR" name="VK_VIDEO_ENCODE_RESERVED_1_BIT_KHR"/>
+ <enum bitpos="25" extends="VkImageUsageFlagBits" name="VK_IMAGE_USAGE_RESERVED_25_BIT_KHR"/>
+ <enum bitpos="26" extends="VkImageUsageFlagBits" name="VK_IMAGE_USAGE_RESERVED_26_BIT_KHR"/>
+ <enum bitpos="49" extends="VkFormatFeatureFlagBits2" name="VK_FORMAT_FEATURE_2_RESERVED_49_BIT_KHR"/>
+ <enum bitpos="50" extends="VkFormatFeatureFlagBits2" name="VK_FORMAT_FEATURE_2_RESERVED_50_BIT_KHR"/>
</require>
</extension>
<extension name="VK_IMG_extension_555" number="555" author="IMG" contact="Jarred Davies" supported="disabled">
@@ -24244,6 +24264,38 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enum value="&quot;VK_KHR_extension_563&quot;" name="VK_KHR_EXTENSION_563_EXTENSION_NAME"/>
</require>
</extension>
+ <extension name="VK_NV_shader_atomic_float16_vector" number="564" type="device" author="NV" contact="Jeff Bolz @jeffbolznv" supported="vulkan">
+ <require>
+ <enum value="1" name="VK_NV_SHADER_ATOMIC_FLOAT16_VECTOR_SPEC_VERSION"/>
+ <enum value="&quot;VK_NV_shader_atomic_float16_vector&quot;" name="VK_NV_SHADER_ATOMIC_FLOAT16_VECTOR_EXTENSION_NAME"/>
+ <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV"/>
+ <type name="VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV"/>
+ </require>
+ </extension>
+ <extension name="VK_EXT_extension_565" number="565" author="EXT" contact="Kevin Petit @kpet" supported="disabled">
+ <require>
+ <enum value="0" name="VK_EXT_EXTENSION_565_SPEC_VERSION"/>
+ <enum value="&quot;VK_EXT_extension_565&quot;" name="VK_EXT_EXTENSION_565_EXTENSION_NAME"/>
+ </require>
+ </extension>
+ <extension name="VK_ARM_extension_566" number="566" author="ARM" contact="Kevin Petit @kpet" supported="disabled">
+ <require>
+ <enum value="0" name="VK_ARM_EXTENSION_566_SPEC_VERSION"/>
+ <enum value="&quot;VK_ARM_extension_566&quot;" name="VK_ARM_EXTENSION_566_EXTENSION_NAME"/>
+ </require>
+ </extension>
+ <extension name="VK_ARM_extension_567" number="567" author="ARM" contact="Kevin Petit @kpet" supported="disabled">
+ <require>
+ <enum value="0" name="VK_ARM_EXTENSION_567_SPEC_VERSION"/>
+ <enum value="&quot;VK_ARM_extension_567&quot;" name="VK_ARM_EXTENSION_567_EXTENSION_NAME"/>
+ </require>
+ </extension>
+ <extension name="VK_ARM_extension_568" number="568" author="ARM" contact="Kevin Petit @kpet" supported="disabled">
+ <require>
+ <enum value="0" name="VK_ARM_EXTENSION_568_SPEC_VERSION"/>
+ <enum value="&quot;VK_ARM_extension_568&quot;" name="VK_ARM_EXTENSION_568_EXTENSION_NAME"/>
+ </require>
+ </extension>
</extensions>
<formats>
<format name="VK_FORMAT_R4G4_UNORM_PACK8" class="8-bit" blockSize="1" texelsPerBlock="1" packed="8">
@@ -25822,6 +25874,9 @@ typedef void* <name>MTLSharedEvent_id</name>;
<spirvextension name="SPV_EXT_shader_atomic_float16_add">
<enable extension="VK_EXT_shader_atomic_float2"/>
</spirvextension>
+ <spirvextension name="SPV_NV_shader_atomic_fp16_vector">
+ <enable extension="VK_NV_shader_atomic_float16_vector"/>
+ </spirvextension>
<spirvextension name="SPV_EXT_fragment_fully_covered">
<enable extension="VK_EXT_conservative_rasterization"/>
</spirvextension>
@@ -25959,6 +26014,9 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enable struct="VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT" feature="shaderBufferFloat64AtomicMinMax" requires="VK_EXT_shader_atomic_float2"/>
<enable struct="VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT" feature="shaderSharedFloat64AtomicMinMax" requires="VK_EXT_shader_atomic_float2"/>
</spirvcapability>
+ <spirvcapability name="AtomicFloat16VectorNV">
+ <enable struct="VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV" feature="shaderFloat16VectorAtomics" requires="VK_NV_shader_atomic_float16_vector"/>
+ </spirvcapability>
<spirvcapability name="Int64ImageEXT">
<enable struct="VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT" feature="shaderImageInt64Atomics" requires="VK_EXT_shader_image_atomic_int64"/>
</spirvcapability>