summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJon Leech <oddhack@sonic.net>2023-10-13 02:29:34 -0700
committerJon Leech <oddhack@sonic.net>2023-10-13 02:29:34 -0700
commitbb6783481f96d778772ea9607e2991c27e2bbe96 (patch)
tree460cf33bd23f8b5cf8c8c769ae92948a45058092
parenta0797ed156639f3fc54be9e640a54dd382191a5a (diff)
downloadgfxstream-protocols-bb6783481f96d778772ea9607e2991c27e2bbe96.tar.gz
Change log for October 13, 2023 Vulkan 1.3.268 spec update:
Github Issues * Restrict flink:vkCmdSetEvent2 ptext:*stageMask parameters to not include ename:VK_PIPELINE_STAGE_2_HOST_BIT (public issue 1996). * Fix <<formats-non-packed, byte mapping table>> for ename:VK_FORMAT_A8_UNORM_KHR (public issue 2234). * Assign VUIDs to new VUs that were overlooked in the previous spec update (public issue 2244). * Add a spec build test and refactor Makefile to allow using a different repository root directory path, for use with the tests (public PR 2248). Internal Issues * Add VUs to slink:VkCopyMemoryToImageInfoEXT and slink:VkCopyImageToMemoryInfoEXT requiring zero row-length / image-height when doing a host copy with ename:VK_HOST_IMAGE_COPY_MEMCPY_EXT (internal issue 3619). * Clarify that fragment shading rate attachments cannot be cleared in VU for slink:VkRenderPassCreateInfo2 and language for slink:VkAttachmentDescription2KHR (internal issue 3634). * Add VUs to slink:VkSparseImageMemoryBind requiring a non-zero extent (internal issue 3635). * Consolidate VUs in many files (internal MRs 6138, 6141. 6142, 6147, 6149, 6153, 6161, 6162, 6167, 6170, 6194, and 6197). * Use title case consistently for chapter and section titles, and add it to the style guide (internal MR 6201).
-rw-r--r--BUILD.adoc8
-rw-r--r--COPYING.adoc2
-rw-r--r--ChangeLog.adoc31
-rw-r--r--LICENSE.adoc2
-rw-r--r--Makefile12
-rw-r--r--appendices/VK_EXT_extended_dynamic_state.adoc4
-rw-r--r--appendices/VK_EXT_fragment_density_map2.adoc4
-rw-r--r--appendices/VK_HUAWEI_cluster_culling_shader.adoc2
-rw-r--r--appendices/VK_KHR_shader_float_controls.adoc2
-rw-r--r--appendices/compressedtex.adoc2
-rw-r--r--appendices/roadmap/Roadmap-2022.adoc4
-rw-r--r--appendices/spirvenv.adoc4
-rw-r--r--appendices/versions.adoc40
-rw-r--r--appendices/vulkanscdeviations.adoc2
-rw-r--r--chapters/VK_EXT_headless_surface/headless.adoc2
-rw-r--r--chapters/VK_EXT_host_image_copy/copies.adoc8
-rw-r--r--chapters/VK_EXT_opacity_micromap/micromaps.adoc2
-rw-r--r--chapters/VK_INTEL_performance_query/queries.adoc2
-rw-r--r--chapters/VK_NV_device_generated_commands/generation.adoc2
-rw-r--r--chapters/VK_NV_optical_flow/optical_flow.adoc2
-rw-r--r--chapters/VK_QCOM_rotated_copies/rotated_addressing_blits.adoc2
-rw-r--r--chapters/capabilities.adoc2
-rw-r--r--chapters/clears.adoc4
-rw-r--r--chapters/cmdbuffers.adoc12
-rw-r--r--chapters/commonvalidity/bind_buffer_common.adoc41
-rw-r--r--chapters/commonvalidity/bind_image_common.adoc62
-rw-r--r--chapters/commonvalidity/copy_anyimage_to_imageany_common.adoc14
-rw-r--r--chapters/commonvalidity/copy_buffer_to_image_common.adoc29
-rw-r--r--chapters/commonvalidity/copy_bufferimage_to_imagebuffer_buffer_alignment_common.adoc16
-rw-r--r--chapters/commonvalidity/copy_image_common.adoc145
-rw-r--r--chapters/commonvalidity/copy_image_to_buffer_common.adoc13
-rw-r--r--chapters/commonvalidity/copy_memoryimage_to_imagememory_common.adoc29
-rw-r--r--chapters/commonvalidity/image_blit_common.adoc15
-rw-r--r--chapters/commonvalidity/image_copy_common.adoc48
-rw-r--r--chapters/commonvalidity/image_resolve_common.adoc15
-rw-r--r--chapters/commonvalidity/resolve_image_common.adoc24
-rw-r--r--chapters/copies.adoc2
-rw-r--r--chapters/descriptorsets.adoc20
-rw-r--r--chapters/devsandqueues.adoc25
-rw-r--r--chapters/extensions.adoc4
-rw-r--r--chapters/formats.adoc12
-rw-r--r--chapters/fragops.adoc2
-rw-r--r--chapters/framebuffer.adoc22
-rw-r--r--chapters/fundamentals.adoc4
-rw-r--r--chapters/memory.adoc63
-rw-r--r--chapters/pipelines.adoc183
-rw-r--r--chapters/primsrast.adoc18
-rw-r--r--chapters/renderpass.adoc68
-rw-r--r--chapters/resources.adoc111
-rw-r--r--chapters/samplers.adoc33
-rw-r--r--chapters/shaders.adoc36
-rw-r--r--chapters/sparsemem.adoc6
-rw-r--r--chapters/synchronization.adoc16
-rw-r--r--chapters/textures.adoc2
-rw-r--r--chapters/video_encode_h264_extensions.adoc4
-rw-r--r--chapters/video_encode_h265_extensions.adoc4
-rw-r--r--config/CI/contractions-allowed1
-rw-r--r--registry.adoc240
-rw-r--r--scripts/extensionmetadocgenerator.py2
-rw-r--r--style/extensions.adoc6
-rw-r--r--style/markup.adoc6
-rw-r--r--style/misc.adoc4
-rw-r--r--style/revisions.adoc2
-rw-r--r--style/writing.adoc26
-rw-r--r--xml/vk.xml16
65 files changed, 711 insertions, 835 deletions
diff --git a/BUILD.adoc b/BUILD.adoc
index e206f65a..cd09f3fd 100644
--- a/BUILD.adoc
+++ b/BUILD.adoc
@@ -21,7 +21,7 @@ and contains some troubleshooting advice.
[[building]]
-== Building The Spec
+== Building the Spec
First, clone the Khronos GitHub repository containing the Vulkan
specification to your local Linux, Windows, or Mac PC.
@@ -130,7 +130,7 @@ If you encounter problems refer to the <<troubleshooting>> section.
[[building-versions]]
-=== Building Specifications For Different API Versions
+=== Building Specifications for Different API Versions
The `Makefile` defaults to building a Vulkan 1.3 specification.
This is controlled by Asciidoctor attributes passed in the Makefile variable
@@ -235,7 +235,7 @@ probably cause any more restricted set of refpages to fail to build.
[[building-diff]]
-==== Building A Highlighted Extension Diff
+==== Building a Highlighted Extension Diff
The `diff_html` target in the Makefile can be used to generate a version of
the specification which highlights changes made to the specification by the
@@ -278,7 +278,7 @@ The asciidoctor HTML build is very fast, even for the whole Specification,
but PDF builds take several minutes.
-=== Images Used In The Specification
+=== Images Used in the Specification
All images used in the specification are in the `images/` directory in the
SVG format, and were created with Inkscape.
diff --git a/COPYING.adoc b/COPYING.adoc
index 4a182769..67bcc08f 100644
--- a/COPYING.adoc
+++ b/COPYING.adoc
@@ -1,7 +1,7 @@
// Copyright 2020-2023 The Khronos Group Inc.
// SPDX-License-Identifier: CC-BY-4.0
-= COPYING file for the KhronosGroup/Vulkan-Docs project
+= COPYING File for the KhronosGroup/Vulkan-Docs Project
== Licenses
diff --git a/ChangeLog.adoc b/ChangeLog.adoc
index 7f5ea1b7..58b47a22 100644
--- a/ChangeLog.adoc
+++ b/ChangeLog.adoc
@@ -14,6 +14,37 @@ appears frequently in the change log.
-----------------------------------------------------
+Change log for October 13, 2023 Vulkan 1.3.268 spec update:
+
+Github Issues
+
+ * Restrict flink:vkCmdSetEvent2 ptext:*stageMask parameters to not include
+ ename:VK_PIPELINE_STAGE_2_HOST_BIT (public issue 1996).
+ * Fix <<formats-non-packed, byte mapping table>> for
+ ename:VK_FORMAT_A8_UNORM_KHR (public issue 2234).
+ * Assign VUIDs to new VUs that were overlooked in the previous spec update
+ (public issue 2244).
+ * Add a spec build test and refactor Makefile to allow using a different
+ repository root directory path, for use with the tests (public PR 2248).
+
+Internal Issues
+
+ * Add VUs to slink:VkCopyMemoryToImageInfoEXT and
+ slink:VkCopyImageToMemoryInfoEXT requiring zero row-length /
+ image-height when doing a host copy with
+ ename:VK_HOST_IMAGE_COPY_MEMCPY_EXT (internal issue 3619).
+ * Clarify that fragment shading rate attachments cannot be cleared in VU
+ for slink:VkRenderPassCreateInfo2 and language for
+ slink:VkAttachmentDescription2KHR (internal issue 3634).
+ * Add VUs to slink:VkSparseImageMemoryBind requiring a non-zero extent
+ (internal issue 3635).
+ * Consolidate VUs in many files (internal MRs 6138, 6141. 6142, 6147,
+ 6149, 6153, 6161, 6162, 6167, 6170, 6194, and 6197).
+ * Use title case consistently for chapter and section titles, and add it
+ to the style guide (internal MR 6201).
+
+-----------------------------------------------------
+
Change log for October 6, 2023 Vulkan 1.3.267 spec update:
Internal Issues
diff --git a/LICENSE.adoc b/LICENSE.adoc
index 7f73f3f2..5a31f041 100644
--- a/LICENSE.adoc
+++ b/LICENSE.adoc
@@ -1,7 +1,7 @@
// Copyright 2020-2023 The Khronos Group Inc.
// SPDX-License-Identifier: CC-BY-4.0
-= LICENSE file for the KhronosGroup/Vulkan-Docs project
+= LICENSE File for the KhronosGroup/Vulkan-Docs Project
Files in this repository fall under one of these licenses:
diff --git a/Makefile b/Makefile
index c0370434..6e819052 100644
--- a/Makefile
+++ b/Makefile
@@ -136,7 +136,7 @@ VERBOSE =
# ADOCOPTS options for asciidoc->HTML5 output
NOTEOPTS = -a editing-notes -a implementation-guide
-PATCHVERSION = 267
+PATCHVERSION = 268
BASEOPTS =
ifneq (,$(findstring VKSC_VERSION_1_0,$(VERSIONS)))
@@ -747,13 +747,13 @@ $(SYNCDEPEND): $(VKXML) $(GENVK)
attribs: $(ATTRIBFILE)
$(ATTRIBFILE):
- for attrib in $(VERSIONS) $(EXTS) ; do \
+ $(QUIET)for attrib in $(VERSIONS) $(EXTS) ; do \
echo ":$${attrib}:" ; \
done > $@
- (echo ":SPECREVISION: $(SPECREVISION)" ; \
- echo ":SPECDATE: $(SPECDATE)" ; \
- echo ":SPECREMARK: $(SPECREMARK)" ; \
- echo ":APITITLE: $(APITITLE)") >> $@
+ $(QUIET)(echo ":SPECREVISION: $(SPECREVISION)" ; \
+ echo ":SPECDATE: $(SPECDATE)" ; \
+ echo ":SPECREMARK: $(SPECREMARK)" ; \
+ echo ":APITITLE: $(APITITLE)") >> $@
# Debugging aid - generate all files from registry XML
generated: $(PYAPIMAP) $(GENDEPENDS)
diff --git a/appendices/VK_EXT_extended_dynamic_state.adoc b/appendices/VK_EXT_extended_dynamic_state.adoc
index 56d1416e..5eb49a4a 100644
--- a/appendices/VK_EXT_extended_dynamic_state.adoc
+++ b/appendices/VK_EXT_extended_dynamic_state.adoc
@@ -43,7 +43,9 @@ core functionality.
=== Issues
-==== Why are the values of pname:pStrides in flink:vkCmdBindVertexBuffers2 limited to be between 0 and the maximum extent of the binding, when this restriction is not present for the same static state?
+1) Why are the values of pname:pStrides in flink:vkCmdBindVertexBuffers2
+limited to be between 0 and the maximum extent of the binding, when this
+restriction is not present for the same static state?
Implementing these edge cases adds overhead to some implementations that
would require significant cost when calling this function, and the intention
diff --git a/appendices/VK_EXT_fragment_density_map2.adoc b/appendices/VK_EXT_fragment_density_map2.adoc
index c99876b2..eccfe81b 100644
--- a/appendices/VK_EXT_fragment_density_map2.adoc
+++ b/appendices/VK_EXT_fragment_density_map2.adoc
@@ -28,7 +28,7 @@ include::{generated}/interfaces/VK_EXT_fragment_density_map2.adoc[]
ifdef::isrefpage[]
=== Examples
-==== Additional limits for subsampling
+==== Additional Limits for Subsampling
Some implementations may not support subsampled samplers if certain
implementation limits are not observed by the app.
@@ -36,7 +36,7 @@ slink:VkPhysicalDeviceFragmentDensityMap2PropertiesEXT provides additional
limits to require apps remain within these boundaries if they wish to use
subsampling.
-==== Improved host latency
+==== Improved Host Latency
By default, the fragment density map is locked by the host for reading
between flink:vkCmdBeginRenderPass during recording and
diff --git a/appendices/VK_HUAWEI_cluster_culling_shader.adoc b/appendices/VK_HUAWEI_cluster_culling_shader.adoc
index f44125f4..b1f90c53 100644
--- a/appendices/VK_HUAWEI_cluster_culling_shader.adoc
+++ b/appendices/VK_HUAWEI_cluster_culling_shader.adoc
@@ -69,7 +69,7 @@ include::{generated}/interfaces/VK_HUAWEI_cluster_culling_shader.adoc[]
* <<spirvenv-capabilities-table-ClusterCullingShadingHUAWEI,
code:ClusterCullingShadingHUAWEI>>
-=== Sample code
+=== Sample Code
Example of cluster culling in a GLSL shader
diff --git a/appendices/VK_KHR_shader_float_controls.adoc b/appendices/VK_KHR_shader_float_controls.adoc
index 39f804c7..0dcae497 100644
--- a/appendices/VK_KHR_shader_float_controls.adoc
+++ b/appendices/VK_KHR_shader_float_controls.adoc
@@ -92,7 +92,7 @@ is passed to them.
[[VK_KHR_shader_controls_v4_incompatibility]]
-=== Version 4 API incompatibility
+=== Version 4 API Incompatibility
The original versions of `VK_KHR_shader_float_controls` shipped with
booleans named "`separateDenormSettings`" and
diff --git a/appendices/compressedtex.adoc b/appendices/compressedtex.adoc
index ff94a342..4fab6c4c 100644
--- a/appendices/compressedtex.adoc
+++ b/appendices/compressedtex.adoc
@@ -162,7 +162,7 @@ color if the implementation supports HDR decoding.
ifdef::VK_EXT_astc_decode_mode[]
-=== ASTC decode mode
+=== ASTC Decode Mode
If the `VK_EXT_astc_decode_mode` extension is enabled, the decode mode is
determined as follows:
diff --git a/appendices/roadmap/Roadmap-2022.adoc b/appendices/roadmap/Roadmap-2022.adoc
index 5aff91cc..ae7e224e 100644
--- a/appendices/roadmap/Roadmap-2022.adoc
+++ b/appendices/roadmap/Roadmap-2022.adoc
@@ -9,7 +9,7 @@
The Roadmap 2022 milestone is intended to be supported by newer mid-to-high-end devices shipping in 2022 or shortly thereafter across mainstream smartphone, tablet, laptops, console and desktop devices.
-=== Required API versions
+=== Required API Versions
This profile requires Vulkan 1.3.
@@ -130,7 +130,7 @@ The following core increased limits are required:
| pname:maxSubgroupSize | - | - | 4 | min
|====
-=== Required extensions
+=== Required Extensions
The following extensions are required:
diff --git a/appendices/spirvenv.adoc b/appendices/spirvenv.adoc
index 922be76e..72ee4cb6 100644
--- a/appendices/spirvenv.adoc
+++ b/appendices/spirvenv.adoc
@@ -143,7 +143,7 @@ include::{generated}/spirvcap/exttable.adoc[]
[[spirvenv-module-validation]]
-== Validation Rules within a Module
+== Validation Rules Within a Module
ifndef::VKSC_VERSION_1_0[]
A SPIR-V module passed to flink:vkCreateShaderModule must: conform to the
@@ -2582,7 +2582,7 @@ The _SPIR-V Type_ is defined by an instruction in SPIR-V, declared with the
Type-Declaration Instruction, Bit Width, and Signedness from above.
[[spirvenv-image-formats]]
-== Compatibility Between SPIR-V Image Formats And Vulkan Formats
+== Compatibility Between SPIR-V Image Formats and Vulkan Formats
SPIR-V code:Image code:Format values are compatible with elink:VkFormat
values as defined below:
diff --git a/appendices/versions.adoc b/appendices/versions.adoc
index 8b292cab..b5999aab 100644
--- a/appendices/versions.adoc
+++ b/appendices/versions.adoc
@@ -54,14 +54,14 @@ include::{generated}/meta/promoted_extensions_VK_VERSION_1_3.adoc[]
All differences in behavior between these extensions and the corresponding
Vulkan 1.3 functionality are summarized below.
-=== Differences relative to `VK_EXT_4444_formats`
+=== Differences Relative to `VK_EXT_4444_formats`
If the `apiext:VK_EXT_4444_formats` extension is not supported, support for
all formats defined by it are optional in Vulkan 1.3.
There are no members in the slink:VkPhysicalDeviceVulkan13Features structure
corresponding to the slink:VkPhysicalDevice4444FormatsFeaturesEXT structure.
-=== Differences relative to `VK_EXT_extended_dynamic_state`
+=== Differences Relative to `VK_EXT_extended_dynamic_state`
All dynamic state enumerants and entry points defined by
`apiext:VK_EXT_extended_dynamic_state` are required in Vulkan 1.3.
@@ -69,7 +69,7 @@ There are no members in the slink:VkPhysicalDeviceVulkan13Features structure
corresponding to the slink:VkPhysicalDeviceExtendedDynamicStateFeaturesEXT
structure.
-=== Differences relative to `VK_EXT_extended_dynamic_state2`
+=== Differences Relative to `VK_EXT_extended_dynamic_state2`
The optional dynamic state enumerants and entry points defined by
`apiext:VK_EXT_extended_dynamic_state2` for patch control points and logic
@@ -78,7 +78,7 @@ There are no members in the slink:VkPhysicalDeviceVulkan13Features structure
corresponding to the slink:VkPhysicalDeviceExtendedDynamicState2FeaturesEXT
structure.
-=== Differences relative to `VK_EXT_texel_buffer_alignment`
+=== Differences Relative to `VK_EXT_texel_buffer_alignment`
The more specific alignment requirements defined by
slink:VkPhysicalDeviceTexelBufferAlignmentProperties are required in Vulkan
@@ -89,7 +89,7 @@ structure.
The pname:texelBufferAlignment feature is enabled if using a Vulkan 1.3
instance.
-=== Differences relative to `VK_EXT_texture_compression_astc_hdr`
+=== Differences Relative to `VK_EXT_texture_compression_astc_hdr`
If the `apiext:VK_EXT_texture_compression_astc_hdr` extension is not
supported, support for all formats defined by it are optional in Vulkan 1.3.
@@ -98,7 +98,7 @@ pname:textureCompressionASTC_HDR>> member of
slink:VkPhysicalDeviceVulkan13Features indicates whether a Vulkan 1.3
implementation supports these formats.
-=== Differences relative to `VK_EXT_ycbcr_2plane_444_formats`
+=== Differences Relative to `VK_EXT_ycbcr_2plane_444_formats`
If the `apiext:VK_EXT_ycbcr_2plane_444_formats` extension is not supported,
support for all formats defined by it are optional in Vulkan 1.3.
@@ -167,7 +167,7 @@ include::{promoted}/promoted_extensions_VK_VERSION_1_2.adoc[]
All differences in behavior between these extensions and the corresponding
Vulkan 1.2 functionality are summarized below.
-=== Differences relative to `VK_KHR_8bit_storage`
+=== Differences Relative to `VK_KHR_8bit_storage`
If the `apiext:VK_KHR_8bit_storage` extension is not supported, support for
the SPIR-V <<features-storageBuffer8BitAccess,
@@ -176,7 +176,7 @@ Support for this feature is defined by
slink:VkPhysicalDeviceVulkan12Features::pname:storageBuffer8BitAccess when
queried via flink:vkGetPhysicalDeviceFeatures2.
-=== Differences relative to `VK_KHR_draw_indirect_count`
+=== Differences Relative to `VK_KHR_draw_indirect_count`
If the `apiext:VK_KHR_draw_indirect_count` extension is not supported,
support for the entry points flink:vkCmdDrawIndirectCount and
@@ -185,7 +185,7 @@ Support for this feature is defined by
slink:VkPhysicalDeviceVulkan12Features::pname:drawIndirectCount when queried
via flink:vkGetPhysicalDeviceFeatures2.
-=== Differences relative to `VK_KHR_sampler_mirror_clamp_to_edge`
+=== Differences Relative to `VK_KHR_sampler_mirror_clamp_to_edge`
If the `apiext:VK_KHR_sampler_mirror_clamp_to_edge` extension is not
supported, support for the elink:VkSamplerAddressMode
@@ -194,7 +194,7 @@ Support for this feature is defined by
slink:VkPhysicalDeviceVulkan12Features::pname:samplerMirrorClampToEdge when
queried via flink:vkGetPhysicalDeviceFeatures2.
-=== Differences relative to `VK_EXT_descriptor_indexing`
+=== Differences Relative to `VK_EXT_descriptor_indexing`
If the `apiext:VK_EXT_descriptor_indexing` extension is not supported,
support for the <<features-descriptorIndexing, pname:descriptorIndexing>>
@@ -203,7 +203,7 @@ Support for this feature is defined by
slink:VkPhysicalDeviceVulkan12Features::pname:descriptorIndexing when
queried via flink:vkGetPhysicalDeviceFeatures2.
-=== Differences relative to `VK_EXT_scalar_block_layout`
+=== Differences Relative to `VK_EXT_scalar_block_layout`
If the `apiext:VK_EXT_scalar_block_layout` extension is not supported,
support for the <<features-scalarBlockLayout, pname:scalarBlockLayout>>
@@ -212,7 +212,7 @@ Support for this feature is defined by
slink:VkPhysicalDeviceVulkan12Features::pname:scalarBlockLayout when queried
via flink:vkGetPhysicalDeviceFeatures2.
-=== Differences relative to `VK_EXT_shader_viewport_index_layer`
+=== Differences Relative to `VK_EXT_shader_viewport_index_layer`
The code:ShaderViewportIndexLayerEXT SPIR-V capability was replaced with the
code:ShaderViewportIndex and code:ShaderLayer capabilities.
@@ -225,7 +225,7 @@ slink:VkPhysicalDeviceVulkan12Features::pname:shaderOutputViewportIndex and
slink:VkPhysicalDeviceVulkan12Features::pname:shaderOutputLayer when queried
via flink:vkGetPhysicalDeviceFeatures2.
-=== Differences relative to `VK_KHR_buffer_device_address`
+=== Differences Relative to `VK_KHR_buffer_device_address`
If the `apiext:VK_KHR_buffer_device_address` extension is not supported,
support for the <<features-bufferDeviceAddress, pname:bufferDeviceAddress>>
@@ -234,7 +234,7 @@ Support for this feature is defined by
slink:VkPhysicalDeviceVulkan12Features::pname:bufferDeviceAddress when
queried via flink:vkGetPhysicalDeviceFeatures2.
-=== Differences relative to `VK_KHR_shader_atomic_int64`
+=== Differences Relative to `VK_KHR_shader_atomic_int64`
If the `apiext:VK_KHR_shader_atomic_int64` extension is not supported,
support for the <<features-shaderBufferInt64Atomics,
@@ -243,7 +243,7 @@ Support for this feature is defined by
slink:VkPhysicalDeviceVulkan12Features::pname:shaderBufferInt64Atomics when
queried via flink:vkGetPhysicalDeviceFeatures2.
-=== Differences relative to `VK_KHR_shader_float16_int8`
+=== Differences Relative to `VK_KHR_shader_float16_int8`
If the `apiext:VK_KHR_shader_float16_int8` extension is not supported,
support for the <<features-shaderFloat16, pname:shaderFloat16>> and
@@ -253,7 +253,7 @@ slink:VkPhysicalDeviceVulkan12Features::pname:shaderFloat16 and
slink:VkPhysicalDeviceVulkan12Features::pname:shaderInt8 when queried via
flink:vkGetPhysicalDeviceFeatures2.
-=== Differences relative to `VK_KHR_vulkan_memory_model`
+=== Differences Relative to `VK_KHR_vulkan_memory_model`
If the `apiext:VK_KHR_vulkan_memory_model` extension is not supported,
support for the <<features-vulkanMemoryModel, pname:vulkanMemoryModel>>
@@ -350,7 +350,7 @@ include::{promoted}/promoted_extensions_VK_VERSION_1_1.adoc[]
All differences in behavior between these extensions and the corresponding
Vulkan 1.1 functionality are summarized below.
-=== Differences relative to `VK_KHR_16bit_storage`
+=== Differences Relative to `VK_KHR_16bit_storage`
If the `apiext:VK_KHR_16bit_storage` extension is not supported, support for
the <<features-storageBuffer16BitAccess, pname:storageBuffer16BitAccess>>
@@ -362,7 +362,7 @@ or slink:VkPhysicalDeviceVulkan11Features::pname:storageBuffer16BitAccess
endif::VK_VERSION_1_2[]
when queried via flink:vkGetPhysicalDeviceFeatures2.
-=== Differences relative to `VK_KHR_sampler_ycbcr_conversion`
+=== Differences Relative to `VK_KHR_sampler_ycbcr_conversion`
If the `apiext:VK_KHR_sampler_ycbcr_conversion` extension is not supported,
support for the <<features-samplerYcbcrConversion,
@@ -374,7 +374,7 @@ or slink:VkPhysicalDeviceVulkan11Features::pname:samplerYcbcrConversion
endif::VK_VERSION_1_2[]
when queried via flink:vkGetPhysicalDeviceFeatures2.
-=== Differences relative to `VK_KHR_shader_draw_parameters`
+=== Differences Relative to `VK_KHR_shader_draw_parameters`
If the `apiext:VK_KHR_shader_draw_parameters` extension is not supported,
support for the
@@ -387,7 +387,7 @@ or slink:VkPhysicalDeviceVulkan11Features::pname:shaderDrawParameters
endif::VK_VERSION_1_2[]
when queried via flink:vkGetPhysicalDeviceFeatures2.
-=== Differences relative to `VK_KHR_variable_pointers`
+=== Differences Relative to `VK_KHR_variable_pointers`
If the `apiext:VK_KHR_variable_pointers` extension is not supported, support
for the <<features-variablePointersStorageBuffer,
diff --git a/appendices/vulkanscdeviations.adoc b/appendices/vulkanscdeviations.adoc
index 7b4d0743..b20acf64 100644
--- a/appendices/vulkanscdeviations.adoc
+++ b/appendices/vulkanscdeviations.adoc
@@ -4,7 +4,7 @@
[appendix]
[[vulkansc-deviations]]
-= Vulkan SC Deviations from Base Vulkan
+= Vulkan SC Deviations From Base Vulkan
== Additions
The following extensions have been added to Vulkan SC:
diff --git a/chapters/VK_EXT_headless_surface/headless.adoc b/chapters/VK_EXT_headless_surface/headless.adoc
index 42f98303..2b0a06e6 100644
--- a/chapters/VK_EXT_headless_surface/headless.adoc
+++ b/chapters/VK_EXT_headless_surface/headless.adoc
@@ -3,7 +3,7 @@
// SPDX-License-Identifier: CC-BY-4.0
[[headless]]
-=== Presenting to headless surfaces
+=== Presenting to Headless Surfaces
Vulkan rendering can be presented to a headless surface, where the
presentation operation is a no-op producing no externally-visible result.
diff --git a/chapters/VK_EXT_host_image_copy/copies.adoc b/chapters/VK_EXT_host_image_copy/copies.adoc
index b1c25570..8dc1fa63 100644
--- a/chapters/VK_EXT_host_image_copy/copies.adoc
+++ b/chapters/VK_EXT_host_image_copy/copies.adoc
@@ -83,6 +83,10 @@ include::{chapters}/commonvalidity/copy_bufferimage_to_imagebuffer_not_both_imag
* [[VUID-VkCopyMemoryToImageInfoEXT-dstImageLayout-09060]]
pname:dstImageLayout must: be one of the image layouts returned in
slink:VkPhysicalDeviceHostImageCopyPropertiesEXT::pname:pCopyDstLayouts
+ * [[VUID-VkCopyMemoryToImageInfoEXT-flags-09393]]
+ If pname:flags includes ename:VK_HOST_IMAGE_COPY_MEMCPY_EXT, for each
+ region in pname:pRegions, pname:memoryRowLength and
+ pname:memoryImageHeight must: both be 0
****
include::{generated}/validity/structs/VkCopyMemoryToImageInfoEXT.adoc[]
@@ -217,6 +221,10 @@ include::{chapters}/commonvalidity/copy_bufferimage_to_imagebuffer_not_both_imag
* [[VUID-VkCopyImageToMemoryInfoEXT-srcImageLayout-09065]]
pname:srcImageLayout must: be one of the image layouts returned in
slink:VkPhysicalDeviceHostImageCopyPropertiesEXT::pname:pCopySrcLayouts
+ * [[VUID-VkCopyImageToMemoryInfoEXT-flags-09394]]
+ If pname:flags includes ename:VK_HOST_IMAGE_COPY_MEMCPY_EXT, for each
+ region in pname:pRegions, pname:memoryRowLength and
+ pname:memoryImageHeight must: both be 0
****
include::{generated}/validity/structs/VkCopyImageToMemoryInfoEXT.adoc[]
diff --git a/chapters/VK_EXT_opacity_micromap/micromaps.adoc b/chapters/VK_EXT_opacity_micromap/micromaps.adoc
index b5ccc1c4..9b629e70 100644
--- a/chapters/VK_EXT_opacity_micromap/micromaps.adoc
+++ b/chapters/VK_EXT_opacity_micromap/micromaps.adoc
@@ -1142,7 +1142,7 @@ microVertexBarycentrics)#
[eq]#microVertexDisplacedPosition = microVertexBasePosition {plus}
microVertexDisplacementVector {times} micromapDisplacementValue#
-==== Displacement micromap encoding
+==== Displacement Micromap Encoding
[[displacement-micromap-encoding]]
diff --git a/chapters/VK_INTEL_performance_query/queries.adoc b/chapters/VK_INTEL_performance_query/queries.adoc
index 4b6c2a5c..2781dc78 100644
--- a/chapters/VK_INTEL_performance_query/queries.adoc
+++ b/chapters/VK_INTEL_performance_query/queries.adoc
@@ -4,7 +4,7 @@
ifdef::VK_INTEL_performance_query[]
[[queries-performance-intel]]
-== Intel performance queries
+== Intel Performance Queries
Intel performance queries allow an application to capture performance data
for a set of commands.
diff --git a/chapters/VK_NV_device_generated_commands/generation.adoc b/chapters/VK_NV_device_generated_commands/generation.adoc
index 0001afe5..36ac42cf 100644
--- a/chapters/VK_NV_device_generated_commands/generation.adoc
+++ b/chapters/VK_NV_device_generated_commands/generation.adoc
@@ -2,7 +2,7 @@
//
// SPDX-License-Identifier: CC-BY-4.0
-== Indirect Commands Generation And Execution
+== Indirect Commands Generation and Execution
[open,refpage='vkGetGeneratedCommandsMemoryRequirementsNV',desc='Retrieve the buffer allocation requirements for generated commands',type='protos']
--
diff --git a/chapters/VK_NV_optical_flow/optical_flow.adoc b/chapters/VK_NV_optical_flow/optical_flow.adoc
index d17ab018..e81e984e 100644
--- a/chapters/VK_NV_optical_flow/optical_flow.adoc
+++ b/chapters/VK_NV_optical_flow/optical_flow.adoc
@@ -430,7 +430,7 @@ include::{generated}/validity/protos/vkDestroyOpticalFlowSessionNV.adoc[]
[[opticalflow-session-binding-images]]
-=== Binding vulkan image views to an optical flow session
+=== Binding Vulkan Image Views to an Optical Flow Session
[open,refpage='vkBindOpticalFlowSessionImageNV',desc='Bind image to an optical flow session',type='protos']
--
diff --git a/chapters/VK_QCOM_rotated_copies/rotated_addressing_blits.adoc b/chapters/VK_QCOM_rotated_copies/rotated_addressing_blits.adoc
index b2d0cd02..4f8dd636 100644
--- a/chapters/VK_QCOM_rotated_copies/rotated_addressing_blits.adoc
+++ b/chapters/VK_QCOM_rotated_copies/rotated_addressing_blits.adoc
@@ -3,7 +3,7 @@
// SPDX-License-Identifier: CC-BY-4.0
[[copies-images-scaling-rotation]]
-=== Image Blits with Scaling and Rotation
+=== Image Blits With Scaling and Rotation
When slink:VkCopyCommandTransformInfoQCOM is in the pname:pNext chain of
slink:VkImageBlit2, the specified region is rotated during the blit.
diff --git a/chapters/capabilities.adoc b/chapters/capabilities.adoc
index c352c643..490c0bca 100644
--- a/chapters/capabilities.adoc
+++ b/chapters/capabilities.adoc
@@ -1141,7 +1141,7 @@ ename:VK_SAMPLE_COUNT_1_BIT.
[[features-extentperimagetype]]
-=== Allowed Extent Values Based On Image Type
+=== Allowed Extent Values Based on Image Type
Implementations may: support extent values larger than the <<limits-minmax,
required minimum/maximum values>> for certain types of images.
diff --git a/chapters/clears.adoc b/chapters/clears.adoc
index 904b60a9..1a017636 100644
--- a/chapters/clears.adoc
+++ b/chapters/clears.adoc
@@ -7,7 +7,7 @@
[[clears-outside]]
-== Clearing Images Outside A Render Pass Instance
+== Clearing Images Outside a Render Pass Instance
Color and depth/stencil images can: be cleared outside a render pass
instance using flink:vkCmdClearColorImage or
@@ -239,7 +239,7 @@ the purposes of memory barriers.
[[clears-inside]]
-== Clearing Images Inside A Render Pass Instance
+== Clearing Images Inside a Render Pass Instance
[open,refpage='vkCmdClearAttachments',desc='Clear regions within bound framebuffer attachments',type='protos']
--
diff --git a/chapters/cmdbuffers.adoc b/chapters/cmdbuffers.adoc
index 56ac1256..eded8533 100644
--- a/chapters/cmdbuffers.adoc
+++ b/chapters/cmdbuffers.adoc
@@ -3157,22 +3157,26 @@ ifdef::VK_ANDROID_external_format_resolve[]
must: be ename:VK_SAMPLE_COUNT_1_BIT
endif::VK_ANDROID_external_format_resolve[]
endif::VK_VERSION_1_3,VK_KHR_dynamic_rendering[]
- * pname:commandBuffer must: not be a <<glossary, secondary command
+ * [[VUID-vkCmdExecuteCommands-commandBuffer-09375]]
+ pname:commandBuffer must: not be a <<glossary, secondary command
buffer>>
ifdef::VK_EXT_nested_command_buffer[]
unless the <<features-nestedCommandBuffer, pname:nestedCommandBuffer>>
feature is enabled
- * If the <<features-nestedCommandBuffer, pname:nestedCommandBuffer>>
+ * [[VUID-vkCmdExecuteCommands-nestedCommandBuffer-09376]]
+ If the <<features-nestedCommandBuffer, pname:nestedCommandBuffer>>
feature is enabled, the <<glossary, command buffer nesting level>> of
each element of pname:pCommandBuffers must: be less than
<<limits-maxCommandBufferNestingLevel,
pname:maxCommandBufferNestingLevel>>
- * If the <<features-nestedCommandBufferRendering,
+ * [[VUID-vkCmdExecuteCommands-nestedCommandBufferRendering-09377]]
+ If the <<features-nestedCommandBufferRendering,
pname:nestedCommandBufferRendering>> feature is not enabled, and
pname:commandBuffer is a <<glossary, secondary command buffer>>,
pname:commandBuffer must: not have been recorded with
ename:VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT
- * If the <<features-nestedCommandBufferSimultaneousUse,
+ * [[VUID-vkCmdExecuteCommands-nestedCommandBufferSimultaneousUse-09378]]
+ If the <<features-nestedCommandBufferSimultaneousUse,
pname:nestedCommandBufferSimultaneousUse>> feature is not enabled, and
pname:commandBuffer is a <<glossary, secondary command buffer>>, each
element of pname:pCommandBuffers must: not have been recorded with
diff --git a/chapters/commonvalidity/bind_buffer_common.adoc b/chapters/commonvalidity/bind_buffer_common.adoc
index d0953e73..604889b9 100644
--- a/chapters/commonvalidity/bind_buffer_common.adoc
+++ b/chapters/commonvalidity/bind_buffer_common.adoc
@@ -61,24 +61,22 @@ ifdef::VK_NV_dedicated_allocation[]
slink:VkDedicatedAllocationMemoryAllocateInfoNV::pname:buffer equal to a
buffer handle created with identical creation parameters to pname:buffer
and pname:memoryOffset must: be zero
-ifndef::VK_VERSION_1_1,VK_KHR_dedicated_allocation[]
- * [[VUID-{refpage}-buffer-01039]]
- If pname:buffer was not created with
- slink:VkDedicatedAllocationBufferCreateInfoNV::pname:dedicatedAllocation
- equal to ename:VK_TRUE, pname:memory must: not have been allocated
- dedicated for a specific buffer or image
-endif::VK_VERSION_1_1,VK_KHR_dedicated_allocation[]
-ifdef::VK_VERSION_1_1,VK_KHR_dedicated_allocation[]
ifndef::VKSC_VERSION_1_0[]
* [[VUID-{refpage}-apiVersion-07920]]
- If the apiext:VK_KHR_dedicated_allocation extension is not enabled,
+ If
+ifdef::VK_KHR_dedicated_allocation[]
+ the apiext:VK_KHR_dedicated_allocation extension is not enabled,
+endif::VK_KHR_dedicated_allocation[]
+ifdef::VK_VERSION_1_1[]
slink:VkPhysicalDeviceProperties::pname:apiVersion is less than Vulkan
- 1.1, and pname:buffer was not created with
+ 1.1,
+endif::VK_VERSION_1_1[]
+ifdef::VK_VERSION_1_1,VK_KHR_dedicated_allocation[and]
+ pname:buffer was not created with
slink:VkDedicatedAllocationBufferCreateInfoNV::pname:dedicatedAllocation
equal to ename:VK_TRUE, pname:memory must: not have been allocated
dedicated for a specific buffer or image
endif::VKSC_VERSION_1_0[]
-endif::VK_VERSION_1_1,VK_KHR_dedicated_allocation[]
endif::VK_NV_dedicated_allocation[]
ifdef::VK_VERSION_1_1,VK_KHR_external_memory[]
* [[VUID-{refpage}-memory-02726]]
@@ -87,21 +85,16 @@ ifdef::VK_VERSION_1_1,VK_KHR_external_memory[]
the handles set in
slink:VkExternalMemoryBufferCreateInfo::pname:handleTypes when
pname:buffer was created
-ifndef::VK_ANDROID_external_memory_android_hardware_buffer[]
- * [[VUID-{refpage}-memory-02727]]
- If pname:memory was allocated by a memory import operation, the external
- handle type of the imported memory must: also have been set in
- slink:VkExternalMemoryBufferCreateInfo::pname:handleTypes when
- pname:buffer was created
-endif::VK_ANDROID_external_memory_android_hardware_buffer[]
-ifdef::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-{refpage}-memory-02985]]
- If pname:memory was allocated by a memory import operation, that is not
- slink:VkImportAndroidHardwareBufferInfoANDROID with a non-`NULL`
- pname:buffer value, the external handle type of the imported memory
- must: also have been set in
- slink:VkExternalMemoryBufferCreateInfo::pname:handleTypes when
+ If pname:memory was allocated by a memory import operation,
+ifdef::VK_ANDROID_external_memory_android_hardware_buffer[]
+ that is not slink:VkImportAndroidHardwareBufferInfoANDROID with a
+ non-`NULL` pname:buffer value,
+endif::VK_ANDROID_external_memory_android_hardware_buffer[]
+ the external handle type of the imported memory must: also have been set
+ in slink:VkExternalMemoryBufferCreateInfo::pname:handleTypes when
pname:buffer was created
+ifdef::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-{refpage}-memory-02986]]
If pname:memory was allocated with the
slink:VkImportAndroidHardwareBufferInfoANDROID memory import operation
diff --git a/chapters/commonvalidity/bind_image_common.adoc b/chapters/commonvalidity/bind_image_common.adoc
index 03ee73c6..8c0347f5 100644
--- a/chapters/commonvalidity/bind_image_common.adoc
+++ b/chapters/commonvalidity/bind_image_common.adoc
@@ -18,26 +18,19 @@ ifdef::VK_VERSION_1_1,VK_KHR_dedicated_allocation[]
slink:VkMemoryDedicatedRequirements::pname:requiresDedicatedAllocation
for pname:image), pname:memory must: have been created with
slink:VkMemoryDedicatedAllocateInfo::pname:image equal to pname:image
-ifndef::VK_NV_dedicated_allocation_image_aliasing[]
- * [[VUID-{refpage}-memory-01509]]
- If the sname:VkMemoryAllocateInfo provided when pname:memory was
- allocated included a slink:VkMemoryDedicatedAllocateInfo structure in
- its pname:pNext chain, and
- slink:VkMemoryDedicatedAllocateInfo::pname:image was not
- dlink:VK_NULL_HANDLE, then pname:image must: equal
- slink:VkMemoryDedicatedAllocateInfo::pname:image and pname:memoryOffset
- must: be zero
-endif::VK_NV_dedicated_allocation_image_aliasing[]
-ifdef::VK_NV_dedicated_allocation_image_aliasing[]
* [[VUID-{refpage}-memory-02628]]
- If the <<features-dedicatedAllocationImageAliasing,
- pname:dedicatedAllocationImageAliasing>> feature is not enabled, and the
- sname:VkMemoryAllocateInfo provided when pname:memory was allocated
+ If
+ifdef::VK_NV_dedicated_allocation_image_aliasing[]
+ the <<features-dedicatedAllocationImageAliasing,
+ pname:dedicatedAllocationImageAliasing>> feature is not enabled, and
+endif::VK_NV_dedicated_allocation_image_aliasing[]
+ the sname:VkMemoryAllocateInfo provided when pname:memory was allocated
included a slink:VkMemoryDedicatedAllocateInfo structure in its
pname:pNext chain, and slink:VkMemoryDedicatedAllocateInfo::pname:image
was not dlink:VK_NULL_HANDLE, then pname:image must: equal
slink:VkMemoryDedicatedAllocateInfo::pname:image and pname:memoryOffset
must: be zero
+ifdef::VK_NV_dedicated_allocation_image_aliasing[]
* [[VUID-{refpage}-memory-02629]]
If the <<features-dedicatedAllocationImageAliasing,
pname:dedicatedAllocationImageAliasing>> feature is enabled, and the
@@ -74,24 +67,22 @@ ifdef::VK_NV_dedicated_allocation[]
slink:VkDedicatedAllocationMemoryAllocateInfoNV::pname:image equal to an
image handle created with identical creation parameters to pname:image
and pname:memoryOffset must: be zero
-ifndef::VK_VERSION_1_1,VK_KHR_dedicated_allocation[]
- * [[VUID-{refpage}-image-01051]]
- If pname:image was not created with
- slink:VkDedicatedAllocationImageCreateInfoNV::pname:dedicatedAllocation
- equal to ename:VK_TRUE, pname:memory must: not have been allocated
- dedicated for a specific buffer or image
-endif::VK_VERSION_1_1,VK_KHR_dedicated_allocation[]
-ifdef::VK_VERSION_1_1,VK_KHR_dedicated_allocation[]
ifndef::VKSC_VERSION_1_0[]
* [[VUID-{refpage}-apiVersion-07921]]
- If the apiext:VK_KHR_dedicated_allocation extension is not enabled,
+ If
+ifdef::VK_KHR_dedicated_allocation[]
+ the apiext:VK_KHR_dedicated_allocation extension is not enabled,
+endif::VK_KHR_dedicated_allocation[]
+ifdef::VK_VERSION_1_1[]
slink:VkPhysicalDeviceProperties::pname:apiVersion is less than Vulkan
- 1.1, and pname:image was not created with
+ 1.1,
+endif::VK_VERSION_1_1[]
+ifdef::VK_VERSION_1_1,VK_KHR_dedicated_allocation[and]
+ pname:image was not created with
slink:VkDedicatedAllocationImageCreateInfoNV::pname:dedicatedAllocation
equal to ename:VK_TRUE, pname:memory must: not have been allocated
dedicated for a specific buffer or image
endif::VKSC_VERSION_1_0[]
-endif::VK_VERSION_1_1,VK_KHR_dedicated_allocation[]
endif::VK_NV_dedicated_allocation[]
ifdef::VK_VERSION_1_1,VK_KHR_external_memory[]
* [[VUID-{refpage}-memory-02728]]
@@ -100,21 +91,16 @@ ifdef::VK_VERSION_1_1,VK_KHR_external_memory[]
the handles set in
slink:VkExternalMemoryImageCreateInfo::pname:handleTypes when
pname:image was created
-ifndef::VK_ANDROID_external_memory_android_hardware_buffer[]
- * [[VUID-{refpage}-memory-02729]]
- If pname:memory was created by a memory import operation, the external
- handle type of the imported memory must: also have been set in
- slink:VkExternalMemoryImageCreateInfo::pname:handleTypes when
- pname:image was created
-endif::VK_ANDROID_external_memory_android_hardware_buffer[]
-ifdef::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-{refpage}-memory-02989]]
- If pname:memory was created by a memory import operation, that is not
- slink:VkImportAndroidHardwareBufferInfoANDROID with a non-`NULL`
- pname:buffer value, the external handle type of the imported memory
- must: also have been set in
- slink:VkExternalMemoryImageCreateInfo::pname:handleTypes when
+ If pname:memory was created by a memory import operation,
+ifdef::VK_ANDROID_external_memory_android_hardware_buffer[]
+ that is not slink:VkImportAndroidHardwareBufferInfoANDROID with a
+ non-`NULL` pname:buffer value,
+endif::VK_ANDROID_external_memory_android_hardware_buffer[]
+ the external handle type of the imported memory must: also have been set
+ in slink:VkExternalMemoryImageCreateInfo::pname:handleTypes when
pname:image was created
+ifdef::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-{refpage}-memory-02990]]
If pname:memory was created with the
slink:VkImportAndroidHardwareBufferInfoANDROID memory import operation
diff --git a/chapters/commonvalidity/copy_anyimage_to_imageany_common.adoc b/chapters/commonvalidity/copy_anyimage_to_imageany_common.adoc
index 94f1a1e8..0cf91bc4 100644
--- a/chapters/commonvalidity/copy_anyimage_to_imageany_common.adoc
+++ b/chapters/commonvalidity/copy_anyimage_to_imageany_common.adoc
@@ -10,17 +10,13 @@
// Additionally, it relies on the {imagesubresource} attribute to specify the
// field in pRegions corresponding to {imageparam}
-ifndef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
- * [[VUID-{refpage}-{imageparam}-07965]]
- If pname:{imageparam} is non-sparse then it must: be bound completely
- and contiguously to a single sname:VkDeviceMemory object
-endif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
-ifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
* [[VUID-{refpage}-{imageparam}-07966]]
- If pname:{imageparam} is non-sparse then the image or the specified
- _disjoint_ plane must: be bound completely and contiguously to a single
- sname:VkDeviceMemory object
+ If pname:{imageparam} is non-sparse then the image
+ifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
+ or the specified _disjoint_ plane
endif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
+ must: be bound completely and contiguously to a single
+ sname:VkDeviceMemory object
* [[VUID-{refpage}-{imagesubresource}-07967]]
The pname:{imagesubresource}.mipLevel member of each element of
pname:pRegions must: be less than the pname:mipLevels specified in
diff --git a/chapters/commonvalidity/copy_buffer_to_image_common.adoc b/chapters/commonvalidity/copy_buffer_to_image_common.adoc
index 38bbd150..ff1420c4 100644
--- a/chapters/commonvalidity/copy_buffer_to_image_common.adoc
+++ b/chapters/commonvalidity/copy_buffer_to_image_common.adoc
@@ -30,28 +30,19 @@ endif::VK_VERSION_1_1,VK_KHR_maintenance1[]
pname:dstImageLayout must: specify the layout of the image subresources
of pname:dstImage specified in pname:pRegions at the time this command
is executed on a sname:VkDevice
-ifndef::VK_KHR_shared_presentable_image[]
- * [[VUID-{refpage}-dstImageLayout-00181]]
- pname:dstImageLayout must: be ename:VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL
- or ename:VK_IMAGE_LAYOUT_GENERAL
-endif::VK_KHR_shared_presentable_image[]
-ifdef::VK_KHR_shared_presentable_image[]
* [[VUID-{refpage}-dstImageLayout-01396]]
pname:dstImageLayout must: be
- ename:VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
- ename:VK_IMAGE_LAYOUT_GENERAL, or
- ename:VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR
+ifdef::VK_KHR_shared_presentable_image[]
+ ename:VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR,
endif::VK_KHR_shared_presentable_image[]
-ifndef::VK_EXT_depth_range_unrestricted[]
- * [[VUID-{refpage}-None-00214]]
- For each element of pname:pRegions whose pname:imageSubresource contains
- a depth aspect, the data in pname:srcBuffer must: be in the range
- [eq]#[0,1]#
-endif::VK_EXT_depth_range_unrestricted[]
-ifdef::VK_EXT_depth_range_unrestricted[]
+ ename:VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, or
+ ename:VK_IMAGE_LAYOUT_GENERAL
* [[VUID-{refpage}-pRegions-07931]]
- If apiext:VK_EXT_depth_range_unrestricted is not enabled, for each
- element of pname:pRegions whose pname:imageSubresource contains a depth
- aspect, the data in pname:srcBuffer must: be in the range [eq]#[0,1]#
+ifdef::VK_EXT_depth_range_unrestricted[]
+ If apiext:VK_EXT_depth_range_unrestricted is not enabled, for
endif::VK_EXT_depth_range_unrestricted[]
+ifndef::VK_EXT_depth_range_unrestricted[For]
+ each element of pname:pRegions whose pname:imageSubresource contains a
+ depth aspect, the data in pname:srcBuffer must: be in the range
+ [eq]#[0,1]#
// Common Valid Usage
diff --git a/chapters/commonvalidity/copy_bufferimage_to_imagebuffer_buffer_alignment_common.adoc b/chapters/commonvalidity/copy_bufferimage_to_imagebuffer_buffer_alignment_common.adoc
index 0cb8b9c1..fc1605c7 100644
--- a/chapters/commonvalidity/copy_bufferimage_to_imagebuffer_buffer_alignment_common.adoc
+++ b/chapters/commonvalidity/copy_bufferimage_to_imagebuffer_buffer_alignment_common.adoc
@@ -9,18 +9,14 @@
//
// - {imageparam}, specifying the name of the source or destination image,
-ifndef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
- * [[VUID-{refpage}-{imageparam}-07974]]
- If pname:{imageparam} does not have a depth/stencil format, then for
- each element of pname:pRegions, pname:bufferOffset must: be a multiple
- of the format's <<formats-compatibility-classes,texel block size>>
-endif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
-ifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
* [[VUID-{refpage}-{imageparam}-07975]]
- If pname:{imageparam} does not have either a depth/stencil or a
- <<formats-requiring-sampler-ycbcr-conversion,multi-planar format>>, then
- for each element of pname:pRegions, pname:bufferOffset must: be a
+ If pname:{imageparam} does not have either a depth/stencil format
+ifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
+ or a <<formats-requiring-sampler-ycbcr-conversion,multi-planar format>>,
+endif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
+ then for each element of pname:pRegions, pname:bufferOffset must: be a
multiple of the <<formats-compatibility-classes,texel block size>>
+ifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
* [[VUID-{refpage}-{imageparam}-07976]]
If pname:{imageparam} has a
<<formats-requiring-sampler-ycbcr-conversion,multi-planar format>>, then
diff --git a/chapters/commonvalidity/copy_image_common.adoc b/chapters/commonvalidity/copy_image_common.adoc
index 24a092d5..a274403a 100644
--- a/chapters/commonvalidity/copy_image_common.adoc
+++ b/chapters/commonvalidity/copy_image_common.adoc
@@ -17,18 +17,13 @@ endif::VK_VERSION_1_1,VK_KHR_maintenance1[]
pname:srcImageLayout must: specify the layout of the image subresources
of pname:srcImage specified in pname:pRegions at the time this command
is executed on a sname:VkDevice
-ifndef::VK_KHR_shared_presentable_image[]
- * [[VUID-{refpage}-srcImageLayout-00129]]
- pname:srcImageLayout must: be ename:VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL
- or ename:VK_IMAGE_LAYOUT_GENERAL
-endif::VK_KHR_shared_presentable_image[]
-ifdef::VK_KHR_shared_presentable_image[]
* [[VUID-{refpage}-srcImageLayout-01917]]
pname:srcImageLayout must: be
- ename:VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,
- ename:VK_IMAGE_LAYOUT_GENERAL, or
- ename:VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR
+ifdef::VK_KHR_shared_presentable_image[]
+ ename:VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR,
endif::VK_KHR_shared_presentable_image[]
+ ename:VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, or
+ ename:VK_IMAGE_LAYOUT_GENERAL
ifdef::VK_VERSION_1_1,VK_KHR_maintenance1[]
* [[VUID-{refpage}-dstImage-01996]]
The <<resources-image-format-features,format features>> of
@@ -38,29 +33,23 @@ endif::VK_VERSION_1_1,VK_KHR_maintenance1[]
pname:dstImageLayout must: specify the layout of the image subresources
of pname:dstImage specified in pname:pRegions at the time this command
is executed on a sname:VkDevice
-ifndef::VK_KHR_shared_presentable_image[]
- * [[VUID-{refpage}-dstImageLayout-00134]]
- pname:dstImageLayout must: be ename:VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL
- or ename:VK_IMAGE_LAYOUT_GENERAL
-endif::VK_KHR_shared_presentable_image[]
-ifdef::VK_KHR_shared_presentable_image[]
* [[VUID-{refpage}-dstImageLayout-01395]]
pname:dstImageLayout must: be
- ename:VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
- ename:VK_IMAGE_LAYOUT_GENERAL, or
- ename:VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR
+ifdef::VK_KHR_shared_presentable_image[]
+ ename:VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR,
endif::VK_KHR_shared_presentable_image[]
-ifndef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
- * [[VUID-{refpage}-srcImage-00135]]
- The elink:VkFormat of each of pname:srcImage and pname:dstImage must: be
- <<formats-size-compatibility,size-compatible>>
-endif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
-ifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
+ ename:VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, or
+ ename:VK_IMAGE_LAYOUT_GENERAL
* [[VUID-{refpage}-srcImage-01548]]
+ifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
If the elink:VkFormat of each of pname:srcImage and pname:dstImage is
not a <<formats-requiring-sampler-ycbcr-conversion,_multi-planar
- format_>>, the elink:VkFormat of each of pname:srcImage and
- pname:dstImage must: be <<formats-size-compatibility,size-compatible>>
+ format_>>, the
+endif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
+ifndef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[The]
+ elink:VkFormat of each of pname:srcImage and pname:dstImage must: be
+ <<formats-size-compatibility,size-compatible>>
+ifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
* [[VUID-{refpage}-None-01549]]
In a copy to or from a plane of a
<<formats-requiring-sampler-ycbcr-conversion,multi-planar image>>, the
@@ -117,26 +106,24 @@ ifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
for each element of pname:pRegions, pname:srcSubresource.aspectMask
must: be ename:VK_IMAGE_ASPECT_COLOR_BIT
endif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
-ifndef::VK_VERSION_1_1,VK_KHR_maintenance1[]
- * [[VUID-{refpage}-srcImage-00139]]
- If either pname:srcImage or pname:dstImage is of type
- ename:VK_IMAGE_TYPE_3D, then for each element of pname:pRegions,
- pname:srcSubresource.baseArrayLayer and
- pname:dstSubresource.baseArrayLayer must: each be `0`, and
- pname:srcSubresource.layerCount and pname:dstSubresource.layerCount
- must: each be `1`
-endif::VK_VERSION_1_1,VK_KHR_maintenance1[]
-ifdef::VK_VERSION_1_1,VK_KHR_maintenance1[]
ifndef::VKSC_VERSION_1_0[]
* [[VUID-{refpage}-apiVersion-07932]]
- If the apiext:VK_KHR_maintenance1 extension is not enabled,
+ If
+ifdef::VK_KHR_maintenance1[]
+ the apiext:VK_KHR_maintenance1 extension is not enabled,
+endif::VK_KHR_maintenance1[]
+ifdef::VK_VERSION_1_1,VK_KHR_maintenance1[or]
+ifdef::VK_VERSION_1_1[]
slink:VkPhysicalDeviceProperties::pname:apiVersion is less than Vulkan
- 1.1, and either pname:srcImage or pname:dstImage is of type
+ 1.1,
+endif::VK_VERSION_1_1[]
+ifdef::VK_VERSION_1_1,VK_KHR_maintenance1[and]
+ either pname:srcImage or pname:dstImage is of type
ename:VK_IMAGE_TYPE_3D, then for each element of pname:pRegions,
pname:srcSubresource.baseArrayLayer and
- pname:dstSubresource.baseArrayLayer must: each be `0`, and
+ pname:dstSubresource.baseArrayLayer must: both be `0`, and
pname:srcSubresource.layerCount and pname:dstSubresource.layerCount
- must: each be `1`
+ must: both be `1`
endif::VKSC_VERSION_1_0[]
* [[VUID-{refpage}-srcImage-04443]]
If pname:srcImage is of type ename:VK_IMAGE_TYPE_3D, then for each
@@ -146,7 +133,6 @@ endif::VKSC_VERSION_1_0[]
If pname:dstImage is of type ename:VK_IMAGE_TYPE_3D, then for each
element of pname:pRegions, pname:dstSubresource.baseArrayLayer must: be
`0` and pname:dstSubresource.layerCount must: be `1`
-endif::VK_VERSION_1_1,VK_KHR_maintenance1[]
* [[VUID-{refpage}-aspectMask-00142]]
For each element of pname:pRegions, pname:srcSubresource.aspectMask
must: specify aspects present in pname:srcImage
@@ -187,27 +173,32 @@ endif::VK_VERSION_1_1,VK_KHR_maintenance1[]
* [[VUID-{refpage}-dstImage-01788]]
If pname:dstImage is of type ename:VK_IMAGE_TYPE_2D, then for each
element of pname:pRegions, pname:dstOffset.z must: be `0`
-ifndef::VK_VERSION_1_1,VK_KHR_maintenance1[]
- * [[VUID-{refpage}-srcImage-07742]]
- pname:srcImage and pname:dstImage must: have the same elink:VkImageType
- * [[VUID-{refpage}-srcImage-01789]]
- If pname:srcImage or pname:dstImage is of type ename:VK_IMAGE_TYPE_2D,
- then for each element of pname:pRegions, pname:extent.depth must: be `1`
-endif::VK_VERSION_1_1,VK_KHR_maintenance1[]
-ifdef::VK_VERSION_1_1,VK_KHR_maintenance1[]
ifndef::VKSC_VERSION_1_0[]
* [[VUID-{refpage}-apiVersion-07933]]
- If the apiext:VK_KHR_maintenance1 extension is not enabled,
+ If
+ifdef::VK_KHR_maintenance1[]
+ the apiext:VK_KHR_maintenance1 extension is not enabled,
+endif::VK_KHR_maintenance1[]
+ifdef::VK_VERSION_1_1,VK_KHR_maintenance1[and]
+ifdef::VK_VERSION_1_1[]
slink:VkPhysicalDeviceProperties::pname:apiVersion is less than Vulkan
- 1.1, pname:srcImage and pname:dstImage must: have the same
- elink:VkImageType
+ 1.1,
+endif::VK_VERSION_1_1[]
+ pname:srcImage and pname:dstImage must: have the same elink:VkImageType
* [[VUID-{refpage}-apiVersion-08969]]
- If the apiext:VK_KHR_maintenance1 extension is not enabled,
+ If
+ifdef::VK_KHR_maintenance1[]
+ the apiext:VK_KHR_maintenance1 extension is not enabled,
+endif::VK_KHR_maintenance1[]
+ifdef::VK_VERSION_1_1,VK_KHR_maintenance1[and]
+ifdef::VK_VERSION_1_1[]
slink:VkPhysicalDeviceProperties::pname:apiVersion is less than Vulkan
- 1.1, and pname:srcImage or pname:dstImage is of type
- ename:VK_IMAGE_TYPE_2D, then for each element of pname:pRegions,
- pname:extent.depth must: be `1`
+ 1.1,
+endif::VK_VERSION_1_1[]
+ pname:srcImage or pname:dstImage is of type ename:VK_IMAGE_TYPE_2D, then
+ for each element of pname:pRegions, pname:extent.depth must: be `1`
endif::VKSC_VERSION_1_0[]
+ifdef::VK_VERSION_1_1,VK_KHR_maintenance1[]
* [[VUID-{refpage}-srcImage-07743]]
If pname:srcImage and pname:dstImage have a different elink:VkImageType,
ifdef::VK_KHR_maintenance5[]
@@ -215,22 +206,20 @@ ifdef::VK_KHR_maintenance5[]
endif::VK_KHR_maintenance5[]
one must: be ename:VK_IMAGE_TYPE_3D and the other must: be
ename:VK_IMAGE_TYPE_2D
-ifndef::VK_KHR_maintenance5[]
- * [[VUID-{refpage}-srcImage-07744]]
+ * [[VUID-{refpage}-srcImage-08793]]
If pname:srcImage and pname:dstImage have the same elink:VkImageType,
- the pname:layerCount member of pname:srcSubresource and
- pname:dstSubresource in each element of pname:pRegions must: match
+ for each element of pname:pRegions,
+ifdef::VK_KHR_maintenance5[]
+ if neither of the pname:layerCount members of pname:srcSubresource or
+ pname:dstSubresource are ename:VK_REMAINING_ARRAY_LAYERS,
endif::VK_KHR_maintenance5[]
+ the pname:layerCount members of pname:srcSubresource or
+ pname:dstSubresource must: match
ifdef::VK_KHR_maintenance5[]
* [[VUID-{refpage}-maintenance5-08792]]
If the <<features-maintenance5, pname:maintenance5>> feature is not
enabled, the pname:layerCount member of pname:srcSubresource or
pname:dstSubresource must: not be ename:VK_REMAINING_ARRAY_LAYERS
- * [[VUID-{refpage}-srcImage-08793]]
- If pname:srcImage and pname:dstImage have the same elink:VkImageType,
- and neither of the pname:layerCount members of pname:srcSubresource or
- pname:dstSubresource are ename:VK_REMAINING_ARRAY_LAYERS, the
- pname:layerCount members must: match
* [[VUID-{refpage}-srcImage-08794]]
If pname:srcImage and pname:dstImage have the same elink:VkImageType,
and one of the pname:layerCount members of pname:srcSubresource or
@@ -334,29 +323,25 @@ endif::VK_VERSION_1_1,VK_KHR_maintenance1[]
by pname:dstSubresource, pname:extent.depth must: be a multiple of the
<<formats-compatibility-classes,texel block extent depth>> of the
elink:VkFormat of pname:dstImage
-ifndef::VK_VERSION_1_2,VK_EXT_separate_stencil_usage[]
- * [[VUID-{refpage}-srcImage-00126]]
- pname:srcImage must: have been created with
- ename:VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag
- * [[VUID-{refpage}-dstImage-00131]]
- pname:dstImage must: have been created with
- ename:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag
-endif::VK_VERSION_1_2,VK_EXT_separate_stencil_usage[]
-ifdef::VK_VERSION_1_2,VK_EXT_separate_stencil_usage[]
* [[VUID-{refpage}-aspect-06662]]
+ifdef::VK_VERSION_1_2,VK_EXT_separate_stencil_usage[]
If the pname:aspect member of any element of pname:pRegions includes any
flag other than ename:VK_IMAGE_ASPECT_STENCIL_BIT or pname:srcImage was
not created with <<VkImageStencilUsageCreateInfo,separate stencil
- usage>>, ename:VK_IMAGE_USAGE_TRANSFER_SRC_BIT must: have been included
- in the slink:VkImageCreateInfo::pname:usage used to create
- pname:srcImage
+ usage>>,
+endif::VK_VERSION_1_2,VK_EXT_separate_stencil_usage[]
+ ename:VK_IMAGE_USAGE_TRANSFER_SRC_BIT must: have been included in the
+ slink:VkImageCreateInfo::pname:usage used to create pname:srcImage
* [[VUID-{refpage}-aspect-06663]]
+ifdef::VK_VERSION_1_2,VK_EXT_separate_stencil_usage[]
If the pname:aspect member of any element of pname:pRegions includes any
flag other than ename:VK_IMAGE_ASPECT_STENCIL_BIT or pname:dstImage was
not created with <<VkImageStencilUsageCreateInfo,separate stencil
- usage>>, ename:VK_IMAGE_USAGE_TRANSFER_DST_BIT must: have been included
- in the slink:VkImageCreateInfo::pname:usage used to create
- pname:dstImage
+ usage>>,
+endif::VK_VERSION_1_2,VK_EXT_separate_stencil_usage[]
+ ename:VK_IMAGE_USAGE_TRANSFER_DST_BIT must: have been included in the
+ slink:VkImageCreateInfo::pname:usage used to create pname:dstImage
+ifdef::VK_VERSION_1_2,VK_EXT_separate_stencil_usage[]
* [[VUID-{refpage}-aspect-06664]]
If the pname:aspect member of any element of pname:pRegions includes
ename:VK_IMAGE_ASPECT_STENCIL_BIT, and pname:srcImage was created with
diff --git a/chapters/commonvalidity/copy_image_to_buffer_common.adoc b/chapters/commonvalidity/copy_image_to_buffer_common.adoc
index ebefc87b..9de04de2 100644
--- a/chapters/commonvalidity/copy_image_to_buffer_common.adoc
+++ b/chapters/commonvalidity/copy_image_to_buffer_common.adoc
@@ -30,16 +30,11 @@ endif::VK_VERSION_1_1,VK_KHR_maintenance1[]
pname:srcImageLayout must: specify the layout of the image subresources
of pname:srcImage specified in pname:pRegions at the time this command
is executed on a sname:VkDevice
-ifndef::VK_KHR_shared_presentable_image[]
- * [[VUID-{refpage}-srcImageLayout-00190]]
- pname:srcImageLayout must: be ename:VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL
- or ename:VK_IMAGE_LAYOUT_GENERAL
-endif::VK_KHR_shared_presentable_image[]
-ifdef::VK_KHR_shared_presentable_image[]
* [[VUID-{refpage}-srcImageLayout-01397]]
pname:srcImageLayout must: be
- ename:VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,
- ename:VK_IMAGE_LAYOUT_GENERAL, or
- ename:VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR
+ifdef::VK_KHR_shared_presentable_image[]
+ ename:VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR,
endif::VK_KHR_shared_presentable_image[]
+ ename:VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, or
+ ename:VK_IMAGE_LAYOUT_GENERAL
// Common Valid Usage
diff --git a/chapters/commonvalidity/copy_memoryimage_to_imagememory_common.adoc b/chapters/commonvalidity/copy_memoryimage_to_imagememory_common.adoc
index 948cff7c..b1f892ff 100644
--- a/chapters/commonvalidity/copy_memoryimage_to_imagememory_common.adoc
+++ b/chapters/commonvalidity/copy_memoryimage_to_imagememory_common.adoc
@@ -17,29 +17,28 @@
If pname:{imageparam} is sparse then all memory ranges accessed by the
copy command must: be bound as described in
<<sparsememory-resource-binding, Binding Resource Memory>>
-ifndef::VK_VERSION_1_2+VK_EXT_separate_stencil_usage[]
- * [[VUID-{refpage}-{imageparam}-09110]]
+ * [[VUID-{refpage}-{imageparam}-09111]]
+ifdef::VK_VERSION_1_2,VK_EXT_separate_stencil_usage[]
+ If the stencil aspect of pname:{imageparam} is accessed, and
+ pname:{imageparam} was not created with
+ <<VkImageStencilUsageCreateInfo,separate stencil usage>>,
+endif::VK_VERSION_1_2,VK_EXT_separate_stencil_usage[]
pname:{imageparam} must: have been created with
ename:VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT set in
slink:VkImageCreateInfo::pname:usage
-endif::VK_VERSION_1_2+VK_EXT_separate_stencil_usage[]
ifdef::VK_VERSION_1_2,VK_EXT_separate_stencil_usage[]
- * [[VUID-{refpage}-{imageparam}-09111]]
- If the stencil aspect of pname:{imageparam} is accessed, and
- pname:{imageparam} was not created with
- <<VkImageStencilUsageCreateInfo,separate stencil usage>>, the image
- must: have been created with ename:VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT
- set in slink:VkImageCreateInfo::pname:usage
* [[VUID-{refpage}-{imageparam}-09112]]
If the stencil aspect of pname:{imageparam} is accessed, and
pname:{imageparam} was created with
- <<VkImageStencilUsageCreateInfo,separate stencil usage>>, the image
- must: have been created with ename:VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT
- set in slink:VkImageStencilUsageCreateInfo::pname:stencilUsage
+ <<VkImageStencilUsageCreateInfo,separate stencil usage>>,
+ pname:{imageparam} must: have been created with
+ ename:VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT set in
+ slink:VkImageStencilUsageCreateInfo::pname:stencilUsage
* [[VUID-{refpage}-{imageparam}-09113]]
- If non-stencil aspects of pname:{imageparam} are accessed, the image
- must: have been created with ename:VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT
- set in slink:VkImageCreateInfo::pname:usage
+ If non-stencil aspects of pname:{imageparam} are accessed,
+ pname:{imageparam} must: have been created with
+ ename:VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT set in
+ slink:VkImageCreateInfo::pname:usage
endif::VK_VERSION_1_2,VK_EXT_separate_stencil_usage[]
* [[VUID-{refpage}-{imageoffset}-09114]]
If pname:flags contains ename:VK_HOST_IMAGE_COPY_MEMCPY_EXT, the
diff --git a/chapters/commonvalidity/image_blit_common.adoc b/chapters/commonvalidity/image_blit_common.adoc
index d67163f1..226305a2 100644
--- a/chapters/commonvalidity/image_blit_common.adoc
+++ b/chapters/commonvalidity/image_blit_common.adoc
@@ -7,20 +7,19 @@
* [[VUID-{refpage}-aspectMask-00238]]
The pname:aspectMask member of pname:srcSubresource and
pname:dstSubresource must: match
-ifndef::VK_KHR_maintenance5[]
- * [[VUID-{refpage}-layerCount-00239]]
- The pname:layerCount member of pname:srcSubresource and
- pname:dstSubresource must: match
+ * [[VUID-{refpage}-layerCount-08800]]
+ifdef::VK_KHR_maintenance5[]
+ If neither of the pname:layerCount members of pname:srcSubresource or
+ pname:dstSubresource are ename:VK_REMAINING_ARRAY_LAYERS, the
endif::VK_KHR_maintenance5[]
+ifndef::VK_KHR_maintenance5[The]
+ pname:layerCount members of pname:srcSubresource or pname:dstSubresource
+ must: match
ifdef::VK_KHR_maintenance5[]
* [[VUID-{refpage}-maintenance5-08799]]
If the <<features-maintenance5, pname:maintenance5>> feature is not
enabled, the pname:layerCount member of pname:srcSubresource or
pname:dstSubresource must: not be ename:VK_REMAINING_ARRAY_LAYERS
- * [[VUID-{refpage}-layerCount-08800]]
- If neither of the pname:layerCount members of pname:srcSubresource or
- pname:dstSubresource are ename:VK_REMAINING_ARRAY_LAYERS, the
- pname:layerCount members must: match
* [[VUID-{refpage}-layerCount-08801]]
If one of the pname:layerCount members of pname:srcSubresource or
pname:dstSubresource is ename:VK_REMAINING_ARRAY_LAYERS, the other
diff --git a/chapters/commonvalidity/image_copy_common.adoc b/chapters/commonvalidity/image_copy_common.adoc
index 0ea14a2f..de6ad749 100644
--- a/chapters/commonvalidity/image_copy_common.adoc
+++ b/chapters/commonvalidity/image_copy_common.adoc
@@ -4,34 +4,36 @@
// Common Valid Usage
// Common to VkImageCopy* struct
-ifndef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
- * [[VUID-{refpage}-aspectMask-00137]]
- The pname:aspectMask member of pname:srcSubresource and
- pname:dstSubresource must: match
-endif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
-ifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
ifndef::VKSC_VERSION_1_0[]
* [[VUID-{refpage}-apiVersion-07940]]
- If the apiext:VK_KHR_sampler_ycbcr_conversion extension is not enabled
- and slink:VkPhysicalDeviceProperties::pname:apiVersion is less than
- Vulkan 1.1, the pname:aspectMask member of pname:srcSubresource and
- pname:dstSubresource must: match
-endif::VKSC_VERSION_1_0[]
-endif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
-ifdef::VK_VERSION_1_1,VK_KHR_maintenance1[]
-ifndef::VKSC_VERSION_1_0[]
+ifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[If]
+ifdef::VK_KHR_sampler_ycbcr_conversion[]
+ the apiext:VK_KHR_sampler_ycbcr_conversion extension is not enabled,
+endif::VK_KHR_sampler_ycbcr_conversion[]
+ifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[and]
+ifdef::VK_VERSION_1_1[]
+ slink:VkPhysicalDeviceProperties::pname:apiVersion is less than Vulkan
+ 1.1,
+endif::VK_VERSION_1_1[]
+ifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[the]
+ifndef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[The]
+ pname:aspectMask member of pname:srcSubresource and pname:dstSubresource
+ must: match
* [[VUID-{refpage}-apiVersion-07941]]
- If the apiext:VK_KHR_maintenance1 extension is not enabled and
+ifdef::VK_VERSION_1_1,VK_KHR_maintenance1[If]
+ifdef::VK_KHR_maintenance1[]
+ the apiext:VK_KHR_maintenance1 extension is not enabled,
+endif::VK_KHR_maintenance1[]
+ifdef::VK_VERSION_1_1,VK_KHR_maintenance1[and]
+ifdef::VK_VERSION_1_1[]
slink:VkPhysicalDeviceProperties::pname:apiVersion is less than Vulkan
- 1.1, the pname:layerCount member of pname:srcSubresource and
- pname:dstSubresource must: match
+ 1.1,
+endif::VK_VERSION_1_1[]
+ifdef::VK_VERSION_1_1,VK_KHR_maintenance1[the]
+ifndef::VK_VERSION_1_1,VK_KHR_maintenance1[The]
+ pname:layerCount member of pname:srcSubresource and pname:dstSubresource
+ must: match
endif::VKSC_VERSION_1_0[]
-endif::VK_VERSION_1_1,VK_KHR_maintenance1[]
-ifndef::VK_VERSION_1_1,VK_KHR_maintenance1[]
- * [[VUID-{refpage}-layerCount-00138]]
- The pname:layerCount member of pname:srcSubresource and
- pname:dstSubresource must: match
-endif::VK_VERSION_1_1,VK_KHR_maintenance1[]
* [[VUID-{refpage}-extent-06668]]
pname:extent.width must: not be 0
* [[VUID-{refpage}-extent-06669]]
diff --git a/chapters/commonvalidity/image_resolve_common.adoc b/chapters/commonvalidity/image_resolve_common.adoc
index 93b1c361..3caae543 100644
--- a/chapters/commonvalidity/image_resolve_common.adoc
+++ b/chapters/commonvalidity/image_resolve_common.adoc
@@ -7,20 +7,19 @@
* [[VUID-{refpage}-aspectMask-00266]]
The pname:aspectMask member of pname:srcSubresource and
pname:dstSubresource must: only contain ename:VK_IMAGE_ASPECT_COLOR_BIT
-ifndef::VK_KHR_maintenance5[]
- * [[VUID-{refpage}-layerCount-00267]]
- The pname:layerCount member of pname:srcSubresource and
- pname:dstSubresource must: match
+ * [[VUID-{refpage}-layerCount-08803]]
+ifdef::VK_KHR_maintenance5[]
+ If neither of the pname:layerCount members of pname:srcSubresource or
+ pname:dstSubresource are ename:VK_REMAINING_ARRAY_LAYERS, the
endif::VK_KHR_maintenance5[]
+ifndef::VK_KHR_maintenance5[The]
+ pname:layerCount member of pname:srcSubresource and pname:dstSubresource
+ must: match
ifdef::VK_KHR_maintenance5[]
* [[VUID-{refpage}-maintenance5-08802]]
If the <<features-maintenance5, pname:maintenance5>> feature is not
enabled, the pname:layerCount member of pname:srcSubresource or
pname:dstSubresource must: not be ename:VK_REMAINING_ARRAY_LAYERS
- * [[VUID-{refpage}-layerCount-08803]]
- If neither of the pname:layerCount members of pname:srcSubresource or
- pname:dstSubresource are ename:VK_REMAINING_ARRAY_LAYERS, the
- pname:layerCount members must: match
* [[VUID-{refpage}-layerCount-08804]]
If one of the pname:layerCount members of pname:srcSubresource or
pname:dstSubresource is ename:VK_REMAINING_ARRAY_LAYERS, the other
diff --git a/chapters/commonvalidity/resolve_image_common.adoc b/chapters/commonvalidity/resolve_image_common.adoc
index 7cb7c19c..47934b2a 100644
--- a/chapters/commonvalidity/resolve_image_common.adoc
+++ b/chapters/commonvalidity/resolve_image_common.adoc
@@ -24,32 +24,24 @@
pname:srcImageLayout must: specify the layout of the image subresources
of pname:srcImage specified in pname:pRegions at the time this command
is executed on a sname:VkDevice
-ifndef::VK_KHR_shared_presentable_image[]
- * [[VUID-{refpage}-srcImageLayout-00261]]
- pname:srcImageLayout must: be ename:VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL
- or ename:VK_IMAGE_LAYOUT_GENERAL
-endif::VK_KHR_shared_presentable_image[]
-ifdef::VK_KHR_shared_presentable_image[]
* [[VUID-{refpage}-srcImageLayout-01400]]
- pname:srcImageLayout must: be ename:VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR,
+ pname:srcImageLayout must: be
+ifdef::VK_KHR_shared_presentable_image[]
+ ename:VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR,
+endif::VK_KHR_shared_presentable_image[]
ename:VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or
ename:VK_IMAGE_LAYOUT_GENERAL
-endif::VK_KHR_shared_presentable_image[]
* [[VUID-{refpage}-dstImageLayout-00262]]
pname:dstImageLayout must: specify the layout of the image subresources
of pname:dstImage specified in pname:pRegions at the time this command
is executed on a sname:VkDevice
-ifndef::VK_KHR_shared_presentable_image[]
- * [[VUID-{refpage}-dstImageLayout-00263]]
- pname:dstImageLayout must: be ename:VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL
- or ename:VK_IMAGE_LAYOUT_GENERAL
-endif::VK_KHR_shared_presentable_image[]
-ifdef::VK_KHR_shared_presentable_image[]
* [[VUID-{refpage}-dstImageLayout-01401]]
- pname:dstImageLayout must: be ename:VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR,
+ pname:dstImageLayout must: be
+ifdef::VK_KHR_shared_presentable_image[]
+ ename:VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR,
+endif::VK_KHR_shared_presentable_image[]
ename:VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or
ename:VK_IMAGE_LAYOUT_GENERAL
-endif::VK_KHR_shared_presentable_image[]
* [[VUID-{refpage}-dstImage-02003]]
The <<resources-image-format-features,format features>> of
pname:dstImage must: contain
diff --git a/chapters/copies.adoc b/chapters/copies.adoc
index 55223993..0384c432 100644
--- a/chapters/copies.adoc
+++ b/chapters/copies.adoc
@@ -1351,7 +1351,7 @@ endif::VK_NV_copy_memory_indirect[]
[[copies-imagescaling]]
-== Image Copies with Scaling
+== Image Copies With Scaling
[open,refpage='vkCmdBlitImage',desc='Copy regions of an image, potentially performing format conversion,',type='protos']
--
diff --git a/chapters/descriptorsets.adoc b/chapters/descriptorsets.adoc
index 3652e7db..8b41e554 100644
--- a/chapters/descriptorsets.adoc
+++ b/chapters/descriptorsets.adoc
@@ -1092,7 +1092,8 @@ endif::VK_KHR_push_descriptor[]
ename:VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT, then all
other elements of slink:VkDescriptorSetLayoutCreateInfo::pname:pBindings
must: have a smaller value of pname:binding
- * If an element of pname:pBindingFlags includes
+ * [[VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-pBindingFlags-09379]]
+ If an element of pname:pBindingFlags includes
ename:VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT, then it must:
be the element with the the highest pname:binding number
* [[VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingUniformBufferUpdateAfterBind-03005]]
@@ -3090,7 +3091,8 @@ ifdef::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
ename:VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit
set, pname:descriptorPool must: have been created with the
ename:VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT flag set
- * If pname:pSetLayouts[i] was created with an element of
+ * [[VUID-VkDescriptorSetAllocateInfo-pSetLayouts-09380]]
+ If pname:pSetLayouts[i] was created with an element of
pname:pBindingFlags that includes
ename:VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT, and
slink:VkDescriptorSetVariableDescriptorCountAllocateInfo is included in
@@ -4442,7 +4444,7 @@ endif::VK_KHR_descriptor_update_template[]
--
-=== Descriptor Set Updates with Templates
+=== Descriptor Set Updates With Templates
[open,refpage='vkCreateDescriptorUpdateTemplate',desc='Create a new descriptor update template',type='protos']
--
@@ -5194,7 +5196,7 @@ include::{generated}/validity/protos/vkCmdPushDescriptorSetKHR.adoc[]
ifdef::VK_VERSION_1_1,VK_KHR_descriptor_update_template[]
-=== Push Descriptor Updates with Descriptor Update Templates
+=== Push Descriptor Updates With Descriptor Update Templates
[open,refpage='vkCmdPushDescriptorSetWithTemplateKHR',desc='Pushes descriptor updates into a command buffer using a descriptor update template',type='protos']
--
@@ -5594,7 +5596,7 @@ rather than descriptor set objects.
[[descriptorbuffers-puttingdescriptorsinmemory]]
-=== Putting descriptors in memory
+=== Putting Descriptors in Memory
Commands are provided to retrieve descriptor data, and also to locate where
in memory that data must: be written to match the given descriptor set
@@ -6126,7 +6128,7 @@ not provided immutably.
[[descriptorbuffers-binding]]
-=== Binding descriptor buffers
+=== Binding Descriptor Buffers
Descriptor buffers have their own separate binding point on the command
buffer, with buffers bound using flink:vkCmdBindDescriptorBuffersEXT.
@@ -6494,7 +6496,7 @@ include::{generated}/validity/protos/vkCmdBindDescriptorBufferEmbeddedSamplersEX
[[descriptorbuffers-updates]]
-=== Updating descriptor buffers
+=== Updating Descriptor Buffers
Updates to descriptor data in buffers can: be performed by any operation on
either the host or device that can: access memory.
@@ -6505,7 +6507,7 @@ stage.
[[descriptorbuffers-push-descriptors]]
-=== Push Descriptors with Descriptor Buffers
+=== Push Descriptors With Descriptor Buffers
If the <<features-descriptorBufferPushDescriptors,
pname:descriptorBufferPushDescriptors>> feature is enabled, push descriptors
@@ -6525,7 +6527,7 @@ required for a subsequent command must: be recorded again.
[[descriptorbuffers-capturereplay]]
-=== Capture and replay
+=== Capture and Replay
In a similar way to <<features-bufferDeviceAddressCaptureReplay,
pname:bufferDeviceAddressCaptureReplay>>, the
diff --git a/chapters/devsandqueues.adoc b/chapters/devsandqueues.adoc
index 21c130a0..6c22a537 100644
--- a/chapters/devsandqueues.adoc
+++ b/chapters/devsandqueues.adoc
@@ -1870,18 +1870,15 @@ include::{generated}/api/structs/VkDeviceCreateInfo.adoc[]
.Valid Usage
****
-ifndef::VK_VERSION_1_1[]
- * [[VUID-VkDeviceCreateInfo-queueFamilyIndex-00372]]
+ * [[VUID-VkDeviceCreateInfo-queueFamilyIndex-02802]]
The pname:queueFamilyIndex member of each element of
pname:pQueueCreateInfos must: be unique within pname:pQueueCreateInfos
+ifdef::VK_VERSION_1_1[]
+ , except that two members can share the same pname:queueFamilyIndex if
+ one describes protected-capable queues and one describes queues that are
+ not protected-capable
endif::VK_VERSION_1_1[]
ifdef::VK_VERSION_1_1[]
- * [[VUID-VkDeviceCreateInfo-queueFamilyIndex-02802]]
- The pname:queueFamilyIndex member of each element of
- pname:pQueueCreateInfos must: be unique within pname:pQueueCreateInfos,
- except that two members can share the same pname:queueFamilyIndex if one
- describes protected-capable queues and one describes queues that are not
- protected-capable
* [[VUID-VkDeviceCreateInfo-pQueueCreateInfos-06755]]
If multiple elements of pname:pQueueCreateInfos share the same
pname:queueFamilyIndex, the sum of their pname:queueCount members must:
@@ -2933,16 +2930,14 @@ endif::VKSC_VERSION_1_0[]
.Valid Usage
****
-ifdef::VKSC_VERSION_1_0[]
* [[VUID-vkDestroyDevice-device-05137]]
- All child objects created on pname:device, except those with no explicit
- <<fundamentals-objectmodel-no-destroy, free or destroy command>>, must:
- have been destroyed prior to destroying pname:device
+ All child objects created on pname:device
+ifdef::VKSC_VERSION_1_0[]
+ , except those with no explicit <<fundamentals-objectmodel-no-destroy,
+ free or destroy command>>,
endif::VKSC_VERSION_1_0[]
+ must: have been destroyed prior to destroying pname:device
ifndef::VKSC_VERSION_1_0[]
- * [[VUID-vkDestroyDevice-device-00378]]
- All child objects created on pname:device must: have been destroyed
- prior to destroying pname:device
* [[VUID-vkDestroyDevice-device-00379]]
If sname:VkAllocationCallbacks were provided when pname:device was
created, a compatible set of callbacks must: be provided here
diff --git a/chapters/extensions.adoc b/chapters/extensions.adoc
index 1015cbc2..56889373 100644
--- a/chapters/extensions.adoc
+++ b/chapters/extensions.adoc
@@ -712,7 +712,7 @@ include::{generated}/validity/structs/VkExtensionProperties.adoc[]
--
[[extendingvulkan-accessing-device-physical-device]]
-==== Accessing device-level functionality from a slink:VkPhysicalDevice
+==== Accessing Device-Level Functionality From a slink:VkPhysicalDevice
Some device extensions also add support for physical-device-level
functionality.
@@ -721,7 +721,7 @@ is supported as advertised by flink:vkEnumerateDeviceExtensionProperties for
a given slink:VkPhysicalDevice.
[[extendingvulkan-accessing-device-logical-device]]
-==== Accessing device-level functionality from a slink:VkDevice
+==== Accessing Device-Level Functionality From a slink:VkDevice
For commands that are dispatched from a slink:VkDevice, or from a child
object of a slink:VkDevice, device extensions must: be enabled in
diff --git a/chapters/formats.adoc b/chapters/formats.adoc
index ffc0a072..29dcb494 100644
--- a/chapters/formats.adoc
+++ b/chapters/formats.adoc
@@ -1299,7 +1299,7 @@ endif::VK_NV_optical_flow[]
ifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
[[formats-compatible-planes]]
-=== Compatible formats of planes of multi-planar formats
+=== Compatible Formats of Planes of Multi-Planar Formats
Individual planes of multi-planar formats are size-compatible with
single-plane color formats if they occupy the same number of bits per texel
@@ -1324,7 +1324,7 @@ include::{generated}/formats/planeformat.adoc[]
endif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
[[formats-planes-image-aspect]]
-=== Multi-planar format image aspect
+=== Multi-planar Format Image Aspect
When using elink:VkImageAspectFlagBits to select a plane of a multi-planar
format, the following are the valid options:
@@ -1464,7 +1464,7 @@ endianness.
^|R ^|G ^|B ^|A 13+>s|etext:VK_FORMAT_R8G8B8A8_*
^|B ^|G ^|R ^|A 13+>s|etext:VK_FORMAT_B8G8R8A8_*
ifdef::VK_KHR_maintenance5[]
-^|0 ^|0 ^|0 ^|A 13+>s|ename:VK_FORMAT_A8_UNORM_KHR
+^|A 16+>s|ename:VK_FORMAT_A8_UNORM_KHR
endif::VK_KHR_maintenance5[]
ifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
^|G~0~ ^|B ^|G~1~ ^|R 13+>s|ename:VK_FORMAT_G8B8G8R8_422_UNORM
@@ -3514,7 +3514,7 @@ respectively.
endif::VK_EXT_host_image_copy[]
[[formats-without-shader-storage-format]]
-=== Formats without shader storage format
+=== Formats Without Shader Storage Format
The device-level features for using a storage image or a storage texel
buffer with an image format of code:Unknown,
@@ -3596,7 +3596,7 @@ endif::VK_VERSION_1_3,VK_KHR_format_feature_flags2[]
ifdef::VK_VERSION_1_3,VK_KHR_format_feature_flags2[]
-=== Depth comparison format support
+=== Depth Comparison Format Support
If Vulkan 1.3 or the `apiext:VK_KHR_format_feature_flags2` extension is
supported, a depth/stencil format with a depth component supporting
@@ -3606,7 +3606,7 @@ ename:VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT.
endif::VK_VERSION_1_3,VK_KHR_format_feature_flags2[]
[[format-feature-dependent-usage-flags]]
-=== Format feature dependent usage flags
+=== Format Feature Dependent Usage Flags
Certain resource usage flags depend on support for the corresponding format
feature flag for the format in question.
diff --git a/chapters/fragops.adoc b/chapters/fragops.adoc
index 8e4fa8bb..d3a52711 100644
--- a/chapters/fragops.adoc
+++ b/chapters/fragops.adoc
@@ -2225,7 +2225,7 @@ sample mask, alpha to coverage, stencil, and depth tests.
ifdef::VK_NV_fragment_coverage_to_color[]
[[fragops-coverage-to-color]]
-== Fragment Coverage To Color
+== Fragment Coverage to Color
[open,refpage='VkPipelineCoverageToColorStateCreateInfoNV',desc='Structure specifying whether fragment coverage replaces a color',type='structs']
--
diff --git a/chapters/framebuffer.adoc b/chapters/framebuffer.adoc
index 8dd8fbcd..e565df47 100644
--- a/chapters/framebuffer.adoc
+++ b/chapters/framebuffer.adoc
@@ -118,23 +118,17 @@ ifdef::VK_EXT_rasterization_order_attachment_access,VK_ARM_rasterization_order_a
pname:flags must: not include
ename:VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT
endif::VK_EXT_rasterization_order_attachment_access,VK_ARM_rasterization_order_attachment_access[]
-ifdef::VK_EXT_extended_dynamic_state3[]
* [[VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-07353]]
- If pname:attachmentCount is not `0`, and any of
- ename:VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT,
+ If pname:attachmentCount is not `0`
+ifdef::VK_EXT_extended_dynamic_state3[]
+ , and any of ename:VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT,
ename:VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT,
ename:VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT, or
ename:VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT are not set,
+endif::VK_EXT_extended_dynamic_state3[]
pname:pAttachments must: be a valid pointer to an array of
pname:attachmentCount valid slink:VkPipelineColorBlendAttachmentState
structures
-endif::VK_EXT_extended_dynamic_state3[]
-ifndef::VK_EXT_extended_dynamic_state3[]
- * [[VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-07354]]
- If pname:attachmentCount is not `0`, pname:pAttachments must: be a valid
- pointer to an array of pname:attachmentCount valid
- slink:VkPipelineColorBlendAttachmentState structures
-endif::VK_EXT_extended_dynamic_state3[]
****
include::{generated}/validity/structs/VkPipelineColorBlendStateCreateInfo.adoc[]
@@ -1107,23 +1101,17 @@ Write Mask>> as follows:
If the <<features-colorWriteEnable, pname:colorWriteEnable>> feature is
not enabled, all elements of pname:pColorWriteEnables must: be
ename:VK_TRUE
-ifdef::VK_EXT_extended_dynamic_state3[]
* [[VUID-VkPipelineColorWriteCreateInfoEXT-attachmentCount-07608]]
+ifdef::VK_EXT_extended_dynamic_state3[]
If the pipeline is being created with
ename:VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT,
ename:VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT,
ename:VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT, or
ename:VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic states not set,
- pname:attachmentCount must: be equal to the pname:attachmentCount member
- of the sname:VkPipelineColorBlendStateCreateInfo structure specified
- during pipeline creation
endif::VK_EXT_extended_dynamic_state3[]
-ifndef::VK_EXT_extended_dynamic_state3[]
- * [[VUID-VkPipelineColorWriteCreateInfoEXT-attachmentCount-04802]]
pname:attachmentCount must: be equal to the pname:attachmentCount member
of the sname:VkPipelineColorBlendStateCreateInfo structure specified
during pipeline creation
-endif::VK_EXT_extended_dynamic_state3[]
* [[VUID-VkPipelineColorWriteCreateInfoEXT-attachmentCount-06655]]
pname:attachmentCount must: be less than or equal to the
pname:maxColorAttachments member of sname:VkPhysicalDeviceLimits
diff --git a/chapters/fundamentals.adoc b/chapters/fundamentals.adoc
index ce85734c..5e5e073d 100644
--- a/chapters/fundamentals.adoc
+++ b/chapters/fundamentals.adoc
@@ -1725,7 +1725,7 @@ respectively.
[[fundamentals-fixedfpconv]]
-=== Conversion from Normalized Fixed-Point to Floating-Point
+=== Conversion From Normalized Fixed-Point to Floating-Point
Unsigned normalized fixed-point integers represent numbers in the range
[eq]#[0,1]#.
@@ -1763,7 +1763,7 @@ result must: be clamped before the value is returned to shaders.
[[fundamentals-fpfixedconv]]
-=== Conversion from Floating-Point to Normalized Fixed-Point
+=== Conversion From Floating-Point to Normalized Fixed-Point
The conversion from a floating-point value [eq]#f# to the corresponding
unsigned normalized fixed-point value [eq]#c# is defined by first clamping
diff --git a/chapters/memory.adoc b/chapters/memory.adoc
index 3e46ad2e..ac391b77 100644
--- a/chapters/memory.adoc
+++ b/chapters/memory.adoc
@@ -1322,28 +1322,23 @@ endif::VK_KHR_external_memory_win32,VK_KHR_external_memory_fd,VK_EXT_external_me
.Valid Usage
****
-ifndef::VK_KHR_external_memory_win32,VK_KHR_external_memory_fd,VK_EXT_external_memory_host,VK_ANDROID_external_memory_android_hardware_buffer,VK_FUCHSIA_external_memory,VK_NV_external_memory_sci_buf,VK_QNX_external_memory_screen_buffer[]
- * [[VUID-VkMemoryAllocateInfo-allocationSize-00638]]
- pname:allocationSize must: be greater than `0`
+ * [[VUID-VkMemoryAllocateInfo-allocationSize-07897]]
+ifdef::VK_KHR_external_memory_win32,VK_KHR_external_memory_fd,VK_EXT_external_memory_host,VK_ANDROID_external_memory_android_hardware_buffer,VK_FUCHSIA_external_memory,VK_NV_external_memory_sci_buf,VK_QNX_external_memory_screen_buffer[]
+ If the parameters do not define an <<memory-import-operation,import or
+ export operation>>,
endif::VK_KHR_external_memory_win32,VK_KHR_external_memory_fd,VK_EXT_external_memory_host,VK_ANDROID_external_memory_android_hardware_buffer,VK_FUCHSIA_external_memory,VK_NV_external_memory_sci_buf,VK_QNX_external_memory_screen_buffer[]
+ pname:allocationSize must: be greater than `0`
ifdef::VK_KHR_external_memory_win32,VK_KHR_external_memory_fd,VK_EXT_external_memory_host,VK_ANDROID_external_memory_android_hardware_buffer,VK_FUCHSIA_external_memory,VK_NV_external_memory_sci_buf,VK_QNX_external_memory_screen_buffer[]
* [[VUID-VkMemoryAllocateInfo-None-06657]]
The parameters must: not define more than one
<<memory-import-operation,import operation>>
- * [[VUID-VkMemoryAllocateInfo-allocationSize-07897]]
- If the parameters do not define an <<memory-import-operation,import or
- export operation>>, pname:allocationSize must: be greater than `0`
-ifndef::VK_ANDROID_external_memory_android_hardware_buffer[]
- * [[VUID-VkMemoryAllocateInfo-allocationSize-07898]]
- If the parameters define an export operation, pname:allocationSize must:
- be greater than `0`
-endif::VK_ANDROID_external_memory_android_hardware_buffer[]
-ifdef::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-VkMemoryAllocateInfo-allocationSize-07899]]
- If the parameters define an export operation and the handle type is not
- ename:VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID,
- pname:allocationSize must: be greater than `0`
+ If the parameters define an export operation
+ifdef::VK_ANDROID_external_memory_android_hardware_buffer[]
+ and the handle type is not
+ ename:VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID
endif::VK_ANDROID_external_memory_android_hardware_buffer[]
+ , pname:allocationSize must: be greater than `0`
endif::VK_KHR_external_memory_win32,VK_KHR_external_memory_fd,VK_EXT_external_memory_host,VK_ANDROID_external_memory_android_hardware_buffer,VK_FUCHSIA_external_memory,VK_NV_external_memory_sci_buf,VK_QNX_external_memory_screen_buffer[]
ifdef::VK_FUCHSIA_buffer_collection[]
* [[VUID-VkMemoryAllocateInfo-buffer-06380]]
@@ -1757,36 +1752,30 @@ endif::VK_KHR_dedicated_allocation[]
* [[VUID-VkMemoryDedicatedAllocateInfo-image-01432]]
At least one of pname:image and pname:buffer must: be
dlink:VK_NULL_HANDLE
-ifndef::VK_ANDROID_external_memory_android_hardware_buffer,VK_QNX_external_memory_screen_buffer[]
- * [[VUID-VkMemoryDedicatedAllocateInfo-image-01433]]
- If pname:image is not dlink:VK_NULL_HANDLE,
- sname:VkMemoryAllocateInfo::pname:allocationSize must: equal the
- sname:VkMemoryRequirements::pname:size of the image
-endif::VK_ANDROID_external_memory_android_hardware_buffer,VK_QNX_external_memory_screen_buffer[]
-ifdef::VK_ANDROID_external_memory_android_hardware_buffer,VK_QNX_external_memory_screen_buffer[]
* [[VUID-VkMemoryDedicatedAllocateInfo-image-02964]]
- If pname:image is not dlink:VK_NULL_HANDLE and the memory is not an
- imported Android Hardware Buffer or an imported QNX Screen buffer,
- sname:VkMemoryAllocateInfo::pname:allocationSize must: equal the
- sname:VkMemoryRequirements::pname:size of the image
+ If pname:image is not dlink:VK_NULL_HANDLE
+ifdef::VK_ANDROID_external_memory_android_hardware_buffer,VK_QNX_external_memory_screen_buffer[]
+ and the memory is not an imported
+ifdef::VK_ANDROID_external_memory_android_hardware_buffer[Android Hardware Buffer]
+ifdef::VK_ANDROID_external_memory_android_hardware_buffer+VK_QNX_external_memory_screen_buffer[or an imported]
+ifdef::VK_QNX_external_memory_screen_buffer[QNX Screen buffer]
endif::VK_ANDROID_external_memory_android_hardware_buffer,VK_QNX_external_memory_screen_buffer[]
+ , sname:VkMemoryAllocateInfo::pname:allocationSize must: equal the
+ sname:VkMemoryRequirements::pname:size of the image
* [[VUID-VkMemoryDedicatedAllocateInfo-image-01434]]
If pname:image is not dlink:VK_NULL_HANDLE, pname:image must: have been
created without ename:VK_IMAGE_CREATE_SPARSE_BINDING_BIT set in
slink:VkImageCreateInfo::pname:flags
-ifndef::VK_ANDROID_external_memory_android_hardware_buffer,VK_QNX_external_memory_screen_buffer[]
- * [[VUID-VkMemoryDedicatedAllocateInfo-buffer-01435]]
- If pname:buffer is not dlink:VK_NULL_HANDLE,
- sname:VkMemoryAllocateInfo::pname:allocationSize must: equal the
- sname:VkMemoryRequirements::pname:size of the buffer
-endif::VK_ANDROID_external_memory_android_hardware_buffer,VK_QNX_external_memory_screen_buffer[]
-ifdef::VK_ANDROID_external_memory_android_hardware_buffer,VK_QNX_external_memory_screen_buffer[]
* [[VUID-VkMemoryDedicatedAllocateInfo-buffer-02965]]
- If pname:buffer is not dlink:VK_NULL_HANDLE and the memory is not an
- imported Android Hardware Buffer or an imported QNX Screen buffer,
- sname:VkMemoryAllocateInfo::pname:allocationSize must: equal the
- sname:VkMemoryRequirements::pname:size of the buffer
+ If pname:buffer is not dlink:VK_NULL_HANDLE
+ifdef::VK_ANDROID_external_memory_android_hardware_buffer,VK_QNX_external_memory_screen_buffer[]
+ and the memory is not an imported
+ifdef::VK_ANDROID_external_memory_android_hardware_buffer[Android Hardware Buffer]
+ifdef::VK_ANDROID_external_memory_android_hardware_buffer+VK_QNX_external_memory_screen_buffer[or an imported]
+ifdef::VK_QNX_external_memory_screen_buffer[QNX Screen buffer]
endif::VK_ANDROID_external_memory_android_hardware_buffer,VK_QNX_external_memory_screen_buffer[]
+ , sname:VkMemoryAllocateInfo::pname:allocationSize must: equal the
+ sname:VkMemoryRequirements::pname:size of the buffer
* [[VUID-VkMemoryDedicatedAllocateInfo-buffer-01436]]
If pname:buffer is not dlink:VK_NULL_HANDLE, pname:buffer must: have
been created without ename:VK_BUFFER_CREATE_SPARSE_BINDING_BIT set in
diff --git a/chapters/pipelines.adoc b/chapters/pipelines.adoc
index 5dfee39a..2d88b2e5 100644
--- a/chapters/pipelines.adoc
+++ b/chapters/pipelines.adoc
@@ -305,20 +305,18 @@ include::{chapters}/commonvalidity/compute_graph_pipeline_create_info_common.ado
stage must: be less than or equal to
sname:VkPhysicalDeviceLimits::pname:maxPerStageResources
ifdef::VK_KHR_pipeline_library[]
-ifndef::VK_AMDX_shader_enqueue[]
- * [[VUID-VkComputePipelineCreateInfo-flags-03364]]
- pname:flags must: not include ename:VK_PIPELINE_CREATE_LIBRARY_BIT_KHR
-endif::VK_AMDX_shader_enqueue[]
-endif::VK_KHR_pipeline_library[]
-ifdef::VK_AMDX_shader_enqueue[]
* [[VUID-VkComputePipelineCreateInfo-shaderEnqueue-09177]]
+ifdef::VK_AMDX_shader_enqueue[]
If <<features-shaderEnqueue,pname:shaderEnqueue>> is not enabled,
+endif::VK_AMDX_shader_enqueue[]
pname:flags must: not include ename:VK_PIPELINE_CREATE_LIBRARY_BIT_KHR
+ifdef::VK_AMDX_shader_enqueue[]
* [[VUID-VkComputePipelineCreateInfo-flags-09178]]
If pname:flags does not include
ename:VK_PIPELINE_CREATE_LIBRARY_BIT_KHR, the shader specified by
pname:stage must: not declare the code:ShaderEnqueueAMDX capability
endif::VK_AMDX_shader_enqueue[]
+endif::VK_KHR_pipeline_library[]
ifdef::VK_EXT_pipeline_creation_feedback,VK_VERSION_1_3[]
* [[VUID-VkComputePipelineCreateInfo-pipelineStageCreationFeedbackCount-06566]]
If
@@ -563,19 +561,15 @@ ifdef::VK_VERSION_1_3,VK_EXT_subgroup_size_control[]
ename:VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT flag
set, the <<features-computeFullSubgroups, pname:computeFullSubgroups>>
feature must: be enabled
-ifdef::VK_NV_mesh_shader,VK_EXT_mesh_shader[]
* [[VUID-VkPipelineShaderStageCreateInfo-flags-08988]]
If pname:flags includes
ename:VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT,
- pname:stage must: be one of ename:VK_SHADER_STAGE_MESH_BIT_EXT,
- ename:VK_SHADER_STAGE_TASK_BIT_EXT, or ename:VK_SHADER_STAGE_COMPUTE_BIT
-endif::VK_NV_mesh_shader,VK_EXT_mesh_shader[]
-ifndef::VK_NV_mesh_shader,VK_EXT_mesh_shader[]
- * [[VUID-VkPipelineShaderStageCreateInfo-flags-08989]]
- If pname:flags includes
- ename:VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT,
- pname:stage must: be ename:VK_SHADER_STAGE_COMPUTE_BIT
+ pname:stage must: be
+ifdef::VK_NV_mesh_shader,VK_EXT_mesh_shader[]
+ one of ename:VK_SHADER_STAGE_MESH_BIT_EXT,
+ ename:VK_SHADER_STAGE_TASK_BIT_EXT, or
endif::VK_NV_mesh_shader,VK_EXT_mesh_shader[]
+ ename:VK_SHADER_STAGE_COMPUTE_BIT
* [[VUID-VkPipelineShaderStageCreateInfo-pNext-02754]]
If a slink:VkPipelineShaderStageRequiredSubgroupSizeCreateInfo structure
is included in the pname:pNext chain, pname:flags must: not have the
@@ -628,74 +622,55 @@ ifdef::VK_KHR_cooperative_matrix[]
<<limits-subgroup-size,pname:subgroupSize>>.
endif::VK_KHR_cooperative_matrix[]
endif::VK_VERSION_1_3,VK_EXT_subgroup_size_control[]
-ifndef::VK_EXT_graphics_pipeline_library,VK_EXT_shader_module_identifier,VK_KHR_maintenance5[]
- * [[VUID-VkPipelineShaderStageCreateInfo-module-06716]]
+
+ * [[VUID-VkPipelineShaderStageCreateInfo-stage-08771]]
+ifdef::VK_EXT_shader_module_identifier[]
+ If a shader module identifier is not specified for this pname:stage,
+endif::VK_EXT_shader_module_identifier[]
pname:module must: be a valid slink:VkShaderModule
-endif::VK_EXT_graphics_pipeline_library,VK_EXT_shader_module_identifier,VK_KHR_maintenance5[]
+ifdef::VK_EXT_graphics_pipeline_library,VK_KHR_maintenance5[]
+ if none of the following features are enabled:
+ifdef::VK_EXT_graphics_pipeline_library[]
+ ** <<features-graphicsPipelineLibrary, pname:graphicsPipelineLibrary>>
+endif::VK_EXT_graphics_pipeline_library[]
+ifdef::VK_KHR_maintenance5[]
+ ** <<features-maintenance5, pname:maintenance5>>
+endif::VK_KHR_maintenance5[]
+endif::VK_EXT_graphics_pipeline_library,VK_KHR_maintenance5[]
+
+ifdef::VK_EXT_graphics_pipeline_library,VK_KHR_maintenance5[]
+ * [[VUID-VkPipelineShaderStageCreateInfo-stage-06845]]
+ifdef::VK_EXT_shader_module_identifier[]
+ If a shader module identifier is not specified for this pname:stage,
+ pname:module must: be a valid slink:VkShaderModule, or
+endif::VK_EXT_shader_module_identifier[]
+ifndef::VK_EXT_shader_module_identifier[]
+ If pname:module is dlink:VK_NULL_HANDLE]
+endif::VK_EXT_shader_module_identifier[]
+ there must: be a valid slink:VkShaderModuleCreateInfo structure in the
+ pname:pNext chain
+endif::VK_EXT_graphics_pipeline_library,VK_KHR_maintenance5[]
+
ifdef::VK_EXT_shader_module_identifier[]
ifdef::VK_EXT_graphics_pipeline_library,VK_KHR_maintenance5[]
* [[VUID-VkPipelineShaderStageCreateInfo-stage-06844]]
If a shader module identifier is specified for this pname:stage, a
slink:VkShaderModuleCreateInfo structure must: not be present in the
pname:pNext chain
- * [[VUID-VkPipelineShaderStageCreateInfo-stage-06845]]
- If a shader module identifier is not specified for this pname:stage,
- pname:module must: be a valid slink:VkShaderModule or there must: be a
- valid slink:VkShaderModuleCreateInfo structure in the pname:pNext chain
-ifndef::VK_KHR_maintenance5[]
- * [[VUID-VkPipelineShaderStageCreateInfo-stage-06846]]
- If a shader module identifier is not specified for this pname:stage, and
- the <<features-graphicsPipelineLibrary, pname:graphicsPipelineLibrary>>
- feature is not enabled, pname:module must: be a valid
- slink:VkShaderModule
-endif::VK_KHR_maintenance5[]
-ifdef::VK_EXT_graphics_pipeline_library+VK_KHR_maintenance5[]
- * [[VUID-VkPipelineShaderStageCreateInfo-stage-08771]]
- If a shader module identifier is not specified for this pname:stage, and
- neither the <<features-maintenance5, pname:maintenance5>> nor
- <<features-graphicsPipelineLibrary, pname:graphicsPipelineLibrary>>
- feature are enabled, pname:module must: be a valid slink:VkShaderModule
-endif::VK_EXT_graphics_pipeline_library+VK_KHR_maintenance5[]
-ifndef::VK_EXT_graphics_pipeline_library[]
- * [[VUID-VkPipelineShaderStageCreateInfo-stage-08772]]
- If a shader module identifier is not specified for this pname:stage, and
- the <<features-maintenance5, pname:maintenance5>> feature is not
- enabled, pname:module must: be a valid slink:VkShaderModule
-endif::VK_EXT_graphics_pipeline_library[]
-endif::VK_EXT_graphics_pipeline_library,VK_KHR_maintenance5[]
-ifndef::VK_EXT_graphics_pipeline_library,VK_KHR_maintenance5[]
- * [[VUID-VkPipelineShaderStageCreateInfo-stage-06847]]
- If a shader identifier is not specified for this pname:stage,
- pname:module must: be a valid slink:VkShaderModule
endif::VK_EXT_graphics_pipeline_library,VK_KHR_maintenance5[]
* [[VUID-VkPipelineShaderStageCreateInfo-stage-06848]]
If a shader module identifier is specified for this pname:stage,
pname:module must: be dlink:VK_NULL_HANDLE
+endif::VK_EXT_shader_module_identifier[]
* [[VUID-VkPipelineShaderStageCreateInfo-pSpecializationInfo-06849]]
- If a shader module identifier is not specified, the shader code used by
- the pipeline must: be valid as described by the <<spirv-spec,Khronos
- SPIR-V Specification>> after applying the specializations provided in
- pname:pSpecializationInfo, if any, and then converting all
- specialization constants into fixed constants
+ifdef::VK_EXT_shader_module_identifier[]
+ If a shader module identifier is not specified, the
endif::VK_EXT_shader_module_identifier[]
-ifndef::VK_EXT_shader_module_identifier[]
-ifdef::VK_EXT_graphics_pipeline_library,VK_KHR_maintenance5[]
-ifndef::VK_KHR_maintenance5[]
- * [[VUID-VkPipelineShaderStageCreateInfo-graphicsPipelineLibrary-06717]]
- If the <<features-graphicsPipelineLibrary,
- pname:graphicsPipelineLibrary>> feature is not enabled, pname:module
- must: be a valid slink:VkShaderModule
-endif::VK_KHR_maintenance5[]
- * [[VUID-VkPipelineShaderStageCreateInfo-module-06718]]
- If pname:module is dlink:VK_NULL_HANDLE, there must: be a valid
- slink:VkShaderModuleCreateInfo structure in the pname:pNext chain
-endif::VK_EXT_graphics_pipeline_library,VK_KHR_maintenance5[]
- * [[VUID-VkPipelineShaderStageCreateInfo-pSpecializationInfo-06719]]
- The shader code used by the pipeline must: be valid as described by the
+ifndef::VK_EXT_shader_module_identifier[The]
+ shader code used by the pipeline must: be valid as described by the
<<spirv-spec,Khronos SPIR-V Specification>> after applying the
specializations provided in pname:pSpecializationInfo, if any, and then
converting all specialization constants into fixed constants
-endif::VK_EXT_shader_module_identifier[]
****
include::{generated}/validity/structs/VkPipelineShaderStageCreateInfo.adoc[]
@@ -1814,11 +1789,12 @@ endif::VKSC_VERSION_1_0[]
****
:pipelineType: graphics
include::{chapters}/commonvalidity/pipeline_create_info_common.adoc[]
-ifndef::VK_NV_mesh_shader,VK_EXT_mesh_shader[]
- * [[VUID-VkGraphicsPipelineCreateInfo-stage-00727]]
+ * [[VUID-VkGraphicsPipelineCreateInfo-stage-02096]]
If the pipeline requires <<pipelines-graphics-subsets-pre-rasterization,
pre-rasterization shader state>> the pname:stage member of one element
of pname:pStages must: be ename:VK_SHADER_STAGE_VERTEX_BIT
+ifdef::VK_NV_mesh_shader,VK_EXT_mesh_shader[]
+ or ename:VK_SHADER_STAGE_MESH_BIT_EXT
endif::VK_NV_mesh_shader,VK_EXT_mesh_shader[]
ifdef::VK_NV_mesh_shader,VK_EXT_mesh_shader[]
* [[VUID-VkGraphicsPipelineCreateInfo-pStages-02095]]
@@ -1831,11 +1807,6 @@ ifdef::VK_NV_mesh_shader,VK_EXT_mesh_shader[]
ename:VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT,
ename:VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, or
ename:VK_SHADER_STAGE_GEOMETRY_BIT)
- * [[VUID-VkGraphicsPipelineCreateInfo-stage-02096]]
- If the pipeline requires <<pipelines-graphics-subsets-pre-rasterization,
- pre-rasterization shader state>> the pname:stage member of one element
- of pname:pStages must: be either ename:VK_SHADER_STAGE_VERTEX_BIT or
- ename:VK_SHADER_STAGE_MESH_BIT_EXT
endif::VK_NV_mesh_shader,VK_EXT_mesh_shader[]
ifdef::VK_NV_mesh_shader+VK_EXT_mesh_shader[]
* [[VUID-VkGraphicsPipelineCreateInfo-TaskNV-07063]]
@@ -1854,23 +1825,18 @@ endif::VK_NV_mesh_shader+VK_EXT_mesh_shader[]
pre-rasterization shader state>> and pname:pStages includes a
tessellation evaluation shader stage, it must: include a tessellation
control shader stage
-ifndef::VK_EXT_extended_dynamic_state3[]
- * [[VUID-VkGraphicsPipelineCreateInfo-pStages-00731]]
- If the pipeline requires <<pipelines-graphics-subsets-pre-rasterization,
- pre-rasterization shader state>> and pname:pStages includes a
- tessellation control shader stage and a tessellation evaluation shader
- stage, pname:pTessellationState must: be a valid pointer to a valid
- slink:VkPipelineTessellationStateCreateInfo structure
-endif::VK_EXT_extended_dynamic_state3[]
-ifdef::VK_EXT_extended_dynamic_state3[]
* [[VUID-VkGraphicsPipelineCreateInfo-pStages-09022]]
If the pipeline requires <<pipelines-graphics-subsets-pre-rasterization,
pre-rasterization shader state>> and pname:pStages includes a
- tessellation control shader stage, and the
- `apiext:VK_EXT_extended_dynamic_state3` extension is not enabled or the
- ename:VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state is not
- set, pname:pTessellationState must: be a valid pointer to a valid
+ tessellation control shader stage,
+ifdef::VK_EXT_extended_dynamic_state3[]
+ and the `apiext:VK_EXT_extended_dynamic_state3` extension is not enabled
+ or the ename:VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state is
+ not set,
+endif::VK_EXT_extended_dynamic_state3[]
+ pname:pTessellationState must: be a valid pointer to a valid
slink:VkPipelineTessellationStateCreateInfo structure
+ifdef::VK_EXT_extended_dynamic_state3[]
* [[VUID-VkGraphicsPipelineCreateInfo-pTessellationState-09023]]
If pname:pTessellationState is not `NULL` it must: be a pointer to a
valid slink:VkPipelineTessellationStateCreateInfo structure
@@ -1899,45 +1865,32 @@ endif::VK_EXT_extended_dynamic_state3[]
shader stages, and the shader code of both contain an
code:OpExecutionMode instruction specifying the out patch size in the
pipeline, they must: both specify the same patch size
-ifndef::VK_EXT_extended_dynamic_state3[]
- * [[VUID-VkGraphicsPipelineCreateInfo-pStages-00736]]
- If the pipeline requires <<pipelines-graphics-subsets-pre-rasterization,
- pre-rasterization shader state>> and
- <<pipelines-graphics-subsets-vertex-input, vertex input state>> and
- pname:pStages includes tessellation shader stages, the pname:topology
- member of pname:pInputAssembly must: be
- ename:VK_PRIMITIVE_TOPOLOGY_PATCH_LIST
- * [[VUID-VkGraphicsPipelineCreateInfo-topology-00737]]
- If the pipeline requires <<pipelines-graphics-subsets-pre-rasterization,
- pre-rasterization shader state>> and
- <<pipelines-graphics-subsets-vertex-input, vertex input state>> and the
- pname:topology member of pname:pInputAssembly is
- ename:VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, pname:pStages must: include
- tessellation shader stages
-endif::VK_EXT_extended_dynamic_state3[]
-ifdef::VK_EXT_extended_dynamic_state3[]
* [[VUID-VkGraphicsPipelineCreateInfo-pStages-08888]]
If the pipeline is being created with
<<pipelines-graphics-subsets-pre-rasterization, pre-rasterization shader
state>> and <<pipelines-graphics-subsets-vertex-input, vertex input
- state>> and pname:pStages includes tessellation shader stages, and
- either ename:VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state is not
- enabled or
+ state>> and pname:pStages includes tessellation shader stages,
+ifdef::VK_EXT_extended_dynamic_state3[]
+ and either ename:VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state is
+ not enabled or
<<limits-dynamicPrimitiveTopologyUnrestricted,pname:dynamicPrimitiveTopologyUnrestricted>>
- is ename:VK_FALSE, the pname:topology member of pname:pInputAssembly
- must: be ename:VK_PRIMITIVE_TOPOLOGY_PATCH_LIST
+ is ename:VK_FALSE,
+endif::VK_EXT_extended_dynamic_state3[]
+ the pname:topology member of pname:pInputAssembly must: be
+ ename:VK_PRIMITIVE_TOPOLOGY_PATCH_LIST
* [[VUID-VkGraphicsPipelineCreateInfo-topology-08889]]
If the pipeline is being created with
<<pipelines-graphics-subsets-pre-rasterization, pre-rasterization shader
state>> and <<pipelines-graphics-subsets-vertex-input, vertex input
state>> and the pname:topology member of pname:pInputAssembly is
- ename:VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, and either
- ename:VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state is not enabled
- or
+ ename:VK_PRIMITIVE_TOPOLOGY_PATCH_LIST,
+ifdef::VK_EXT_extended_dynamic_state3[]
+ and either ename:VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY dynamic state is
+ not enabled or
<<limits-dynamicPrimitiveTopologyUnrestricted,pname:dynamicPrimitiveTopologyUnrestricted>>
- is ename:VK_FALSE, then pname:pStages must: include tessellation shader
- stages
+ is ename:VK_FALSE,
endif::VK_EXT_extended_dynamic_state3[]
+ then pname:pStages must: include tessellation shader stages
* [[VUID-VkGraphicsPipelineCreateInfo-TessellationEvaluation-07723]]
If the pipeline is being created with a code:TessellationEvaluation
{ExecutionModel}, no code:Geometry {ExecutionModel}, uses the
@@ -8692,7 +8645,7 @@ endif::VK_NV_device_generated_commands[]
ifdef::VK_EXT_shader_object[]
[[pipelines-shader-object-interaction]]
-=== Interaction with Shader Objects
+=== Interaction With Shader Objects
If the <<features-shaderObject, pname:shaderObject>> feature is enabled,
applications can: use both pipelines and <<shaders-objects, shader objects>>
diff --git a/chapters/primsrast.adoc b/chapters/primsrast.adoc
index d492fc8c..f3d1c2bc 100644
--- a/chapters/primsrast.adoc
+++ b/chapters/primsrast.adoc
@@ -98,16 +98,11 @@ endif::VK_AMD_rasterization_order[]
* [[VUID-VkPipelineRasterizationStateCreateInfo-depthClampEnable-00782]]
If the <<features-depthClamp, pname:depthClamp>> feature is not enabled,
pname:depthClampEnable must: be ename:VK_FALSE
-ifndef::VK_NV_fill_rectangle[]
- * [[VUID-VkPipelineRasterizationStateCreateInfo-polygonMode-01413]]
+ * [[VUID-VkPipelineRasterizationStateCreateInfo-polygonMode-01507]]
If the <<features-fillModeNonSolid, pname:fillModeNonSolid>> feature is
not enabled, pname:polygonMode must: be ename:VK_POLYGON_MODE_FILL
-endif::VK_NV_fill_rectangle[]
+ifdef::VK_NV_fill_rectangle[or ename:VK_POLYGON_MODE_FILL_RECTANGLE_NV]
ifdef::VK_NV_fill_rectangle[]
- * [[VUID-VkPipelineRasterizationStateCreateInfo-polygonMode-01507]]
- If the <<features-fillModeNonSolid, pname:fillModeNonSolid>> feature is
- not enabled, pname:polygonMode must: be ename:VK_POLYGON_MODE_FILL or
- ename:VK_POLYGON_MODE_FILL_RECTANGLE_NV
* [[VUID-VkPipelineRasterizationStateCreateInfo-polygonMode-01414]]
If the `apiext:VK_NV_fill_rectangle` extension is not enabled,
pname:polygonMode must: not be ename:VK_POLYGON_MODE_FILL_RECTANGLE_NV
@@ -3748,16 +3743,11 @@ ifndef::VK_EXT_shader_object[]
The <<features-extendedDynamicState3PolygonMode,
pname:extendedDynamicState3PolygonMode>> feature must: be enabled
endif::VK_EXT_shader_object[]
-ifndef::VK_NV_fill_rectangle[]
- * [[VUID-vkCmdSetPolygonModeEXT-fillModeNonSolid-07423]]
+ * [[VUID-vkCmdSetPolygonModeEXT-fillModeNonSolid-07424]]
If the <<features-fillModeNonSolid, pname:fillModeNonSolid>> feature is
not enabled, pname:polygonMode must: be ename:VK_POLYGON_MODE_FILL
-endif::VK_NV_fill_rectangle[]
+ifdef::VK_NV_fill_rectangle[or ename:VK_POLYGON_MODE_FILL_RECTANGLE_NV]
ifdef::VK_NV_fill_rectangle[]
- * [[VUID-vkCmdSetPolygonModeEXT-fillModeNonSolid-07424]]
- If the <<features-fillModeNonSolid, pname:fillModeNonSolid>> feature is
- not enabled, pname:polygonMode must: be ename:VK_POLYGON_MODE_FILL or
- ename:VK_POLYGON_MODE_FILL_RECTANGLE_NV
* [[VUID-vkCmdSetPolygonModeEXT-polygonMode-07425]]
If the `apiext:VK_NV_fill_rectangle` extension is not enabled,
pname:polygonMode must: not be ename:VK_POLYGON_MODE_FILL_RECTANGLE_NV
diff --git a/chapters/renderpass.adoc b/chapters/renderpass.adoc
index d0fe20ae..cd767862 100644
--- a/chapters/renderpass.adoc
+++ b/chapters/renderpass.adoc
@@ -617,7 +617,8 @@ endif::VK_QCOM_multiview_per_view_render_areas[]
memory locations that are bound to any other valid attachments specified
by this structure
ifdef::VK_EXT_nested_command_buffer[]
- * If pname:flags includes ename:VK_RENDERING_CONTENTS_INLINE_BIT_EXT then
+ * [[VUID-VkRenderingInfo-flags-09381]]
+ If pname:flags includes ename:VK_RENDERING_CONTENTS_INLINE_BIT_EXT then
the <<features-nestedCommandBuffer, pname:nestedCommandBuffer>> feature
must: be enabled
endif::VK_EXT_nested_command_buffer[]
@@ -3250,6 +3251,10 @@ ifdef::VK_KHR_fragment_shading_rate[]
If any element of pname:pAttachments is used as a fragment shading rate
attachment in any subpass, it must: not be used as any other attachment
in the render pass
+ * [[VUID-VkRenderPassCreateInfo2-pAttachments-09387]]
+ If any element of pname:pAttachments is used as a fragment shading rate
+ attachment, the pname:loadOp for that attachment must: not be
+ ename:VK_ATTACHMENT_LOAD_OP_CLEAR
ifdef::VK_QCOM_render_pass_transform[]
* [[VUID-VkRenderPassCreateInfo2-flags-04521]]
If pname:flags includes ename:VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM,
@@ -3418,6 +3423,16 @@ in the pname:pNext chain.
endif::VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts[]
+ifdef::VK_KHR_fragment_shading_rate[]
+pname:loadOp and pname:storeOp are ignored for fragment shading rate
+attachments.
+No access to the shading rate attachment is performed in pname:loadOp and
+pname:storeOp.
+Instead, access to
+ename:VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR is performed
+as fragments are rasterized.
+endif::VK_KHR_fragment_shading_rate[]
+
.Valid Usage
****
include::{chapters}/commonvalidity/attachment_description_common.adoc[]
@@ -3749,38 +3764,24 @@ ifdef::VK_EXT_multisampled_render_to_single_sampled[]
attachments in pname:pColorAttachments that are not
ename:VK_ATTACHMENT_UNUSED must: have the same sample count
endif::VK_EXT_multisampled_render_to_single_sampled[]
-ifndef::VK_ANDROID_external_format_resolve[]
* [[VUID-VkSubpassDescription2-pInputAttachments-02897]]
All attachments in pname:pInputAttachments that are not
- ename:VK_ATTACHMENT_UNUSED must: have image formats whose
- <<potential-format-features, potential format features>> contain at
- least ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT or
- ename:VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
-endif::VK_ANDROID_external_format_resolve[]
+ ename:VK_ATTACHMENT_UNUSED
ifdef::VK_ANDROID_external_format_resolve[]
- * [[VUID-VkSubpassDescription2-externalFormatResolve-09340]]
- If the <<features-externalFormatResolve, pname:externalFormatResolve>>
- feature is not enabled, all attachments in pname:pInputAttachments that
- are not ename:VK_ATTACHMENT_UNUSED must: have image formats whose
- <<potential-format-features, potential format features>> contain at
- least ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT or
- ename:VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
- * [[VUID-VkSubpassDescription2-nullColorAttachmentWithExternalFormatResolve-09341]]
- If the <<limits-nullColorAttachmentWithExternalFormatResolve,
- pname:nullColorAttachmentWithExternalFormatResolve>> property is
- ename:VK_FALSE, all attachments in pname:pInputAttachments that are not
- ename:VK_ATTACHMENT_UNUSED must: have image formats whose
- <<potential-format-features, potential format features>> contain at
- least ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT or
- ename:VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
- * [[VUID-VkSubpassDescription2-pInputAttachments-09342]]
- All attachments in pname:pInputAttachments that are not
- ename:VK_ATTACHMENT_UNUSED and do not have a non-zero value of
- slink:VkExternalFormatANDROID::pname:externalFormat must: have image
- formats whose <<potential-format-features, potential format features>>
- contain at least ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT or
- ename:VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
+ and any of the following is true:
+ ** the <<features-externalFormatResolve, pname:externalFormatResolve>>
+ feature is not enabled
+ ** the <<limits-nullColorAttachmentWithExternalFormatResolve,
+ pname:nullColorAttachmentWithExternalFormatResolve>> property is
+ ename:VK_FALSE
+ ** does not have a non-zero value of
+ slink:VkExternalFormatANDROID::pname:externalFormat
endif::VK_ANDROID_external_format_resolve[]
+
++
+must: have image formats whose <<potential-format-features, potential format
+ features>> contain at least ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT
+ or ename:VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
* [[VUID-VkSubpassDescription2-pColorAttachments-02898]]
All attachments in pname:pColorAttachments that are not
ename:VK_ATTACHMENT_UNUSED must: have image formats whose
@@ -6453,7 +6454,8 @@ endif::VK_KHR_create_renderpass2[]
ifdef::VK_EXT_nested_command_buffer[]
.Valid Usage
****
- * If pname:contents is
+ * [[VUID-VkSubpassBeginInfo-contents-09382]]
+ If pname:contents is
ename:VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT, then
<<features-nestedCommandBuffer, pname:nestedCommandBuffer>> must: be
enabled
@@ -7046,7 +7048,7 @@ This section indicates a number of the more common cases as guidelines to
help avoid them.
-=== Sampling from a read-only attachment
+=== Sampling From a Read-only Attachment
Vulkan includes read-only layouts for depth/stencil images, that allow the
images to be both read during a render pass for the purposes of
@@ -7077,7 +7079,7 @@ operation that also performs no writes.
endif::VK_VERSION_1_3,VK_EXT_load_store_op_none,VK_QCOM_render_pass_store_ops,VK_KHR_dynamic_rendering[]
-=== Non-overlapping access between resources
+=== Non-overlapping Access Between Resources
When relying on non-overlapping accesses between attachments and other
resources, it is important to note that <<renderpass-load-operations, load>>
@@ -7097,7 +7099,7 @@ introducing a data race.
endif::VK_EXT_attachment_feedback_loop_layout[]
-=== Depth/stencil and input attachments
+=== Depth/Stencil and Input Attachments
When rendering to only the depth OR stencil aspect of an image, an input
attachment accessing the other aspect will
diff --git a/chapters/resources.adoc b/chapters/resources.adoc
index c45868c7..a9ca57ec 100644
--- a/chapters/resources.adoc
+++ b/chapters/resources.adoc
@@ -70,7 +70,8 @@ endif::VK_NV_extended_sparse_address_space[]
memory for all currently valid sparse resources on the device to exceed
sname:VkPhysicalDeviceLimits::pname:sparseAddressSpaceSize
ifdef::VK_NV_extended_sparse_address_space[]
- * If the pname:flags member of pname:pCreateInfo includes
+ * [[VUID-vkCreateBuffer-flags-09383]]
+ If the pname:flags member of pname:pCreateInfo includes
ename:VK_BUFFER_CREATE_SPARSE_BINDING_BIT, the
<<features-extendedSparseAddressSpace,
pname:extendedSparseAddressSpace>> feature is enabled, and the
@@ -85,7 +86,8 @@ ifdef::VK_NV_extended_sparse_address_space[]
containing bits in
sname:VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV::pname:extendedSparseImageUsageFlags,
to exceed sname:VkPhysicalDeviceLimits::pname:sparseAddressSpaceSize
- * If the pname:flags member of pname:pCreateInfo includes
+ * [[VUID-vkCreateBuffer-flags-09384]]
+ If the pname:flags member of pname:pCreateInfo includes
ename:VK_BUFFER_CREATE_SPARSE_BINDING_BIT and the
<<features-extendedSparseAddressSpace,
pname:extendedSparseAddressSpace>> feature is enabled, creating this
@@ -1233,7 +1235,8 @@ endif::VK_NV_extended_sparse_address_space[]
memory for all currently valid sparse resources on the device to exceed
sname:VkPhysicalDeviceLimits::pname:sparseAddressSpaceSize
ifdef::VK_NV_extended_sparse_address_space[]
- * If the pname:flags member of pname:pCreateInfo includes
+ * [[VUID-vkCreateImage-flags-09385]]
+ If the pname:flags member of pname:pCreateInfo includes
ename:VK_IMAGE_CREATE_SPARSE_BINDING_BIT, the
<<features-extendedSparseAddressSpace,
pname:extendedSparseAddressSpace>> feature is enabled, and the
@@ -1248,7 +1251,8 @@ ifdef::VK_NV_extended_sparse_address_space[]
containing bits in
sname:VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV::pname:extendedSparseImageUsageFlags,
to exceed sname:VkPhysicalDeviceLimits::pname:sparseAddressSpaceSize
- * If the pname:flags member of pname:pCreateInfo includes
+ * [[VUID-vkCreateImage-flags-09386]]
+ If the pname:flags member of pname:pCreateInfo includes
ename:VK_IMAGE_CREATE_SPARSE_BINDING_BIT and the
<<features-extendedSparseAddressSpace,
pname:extendedSparseAddressSpace>> feature is enabled, creating this
@@ -4738,79 +4742,26 @@ endif::VK_NV_linear_color_attachment[]
ename:VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, then the image view's
<<resources-image-view-format-features,format features>> must: contain
ename:VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
-ifndef::VK_NV_linear_color_attachment[]
-ifndef::VK_ANDROID_external_format_resolve[]
- * [[VUID-VkImageViewCreateInfo-usage-02652]]
- If pname:usage contains ename:VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, then
- the image view's <<resources-image-view-format-features,format
- features>> must: contain at least one of
- ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT or
- ename:VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
-endif::VK_ANDROID_external_format_resolve[]
+ * [[VUID-VkImageViewCreateInfo-usage-08932]]
+ If pname:usage contains ename:VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT,
ifdef::VK_ANDROID_external_format_resolve[]
- * [[VUID-VkImageViewCreateInfo-externalFormatResolve-09355]]
- If the <<features-externalFormatResolve, pname:externalFormatResolve>>
- feature is not enabled and pname:usage contains
- ename:VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, then the image view's
- <<resources-image-view-format-features,format features>> must: contain
- at least one of ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT or
- ename:VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
- * [[VUID-VkImageViewCreateInfo-nullColorAttachmentWithExternalFormatResolve-09356]]
- If the <<limits-nullColorAttachmentWithExternalFormatResolve,
- pname:nullColorAttachmentWithExternalFormatResolve>> property is
- ename:VK_FALSE and pname:usage contains
- ename:VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, then the image view's
- <<resources-image-view-format-features,format features>> must: contain
- at least one of ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT or
- ename:VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
- * [[VUID-VkImageViewCreateInfo-image-09357]]
- If pname:image was created with a
- slink:VkExternalFormatANDROID::pname:externalFormat value of 0 and
- pname:usage contains ename:VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, then the
- image view's <<resources-image-view-format-features,format features>>
- must: contain at least one of
+ and any of the following is true:
+ ** the <<features-externalFormatResolve, pname:externalFormatResolve>>
+ feature is not enabled
+ ** the <<limits-nullColorAttachmentWithExternalFormatResolve,
+ pname:nullColorAttachmentWithExternalFormatResolve>> property is
+ ename:VK_FALSE
+ ** pname:image was created with an
+ slink:VkExternalFormatANDROID::pname:externalFormat value of 0
+endif::VK_ANDROID_external_format_resolve[]
+
++
+then the image view's <<resources-image-view-format-features,format
+ features>> must: contain at least one of
ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT or
ename:VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
-endif::VK_ANDROID_external_format_resolve[]
-endif::VK_NV_linear_color_attachment[]
ifdef::VK_NV_linear_color_attachment[]
-ifndef::VK_ANDROID_external_format_resolve[]
- * [[VUID-VkImageViewCreateInfo-usage-08932]]
- If pname:usage contains ename:VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, then
- the image view's <<resources-image-view-format-features,format
- features>> must: contain at least one of
- ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT,
- ename:VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT or,
- ename:VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV
-endif::VK_ANDROID_external_format_resolve[]
-ifdef::VK_ANDROID_external_format_resolve[]
- * [[VUID-VkImageViewCreateInfo-externalFormatResolve-09358]]
- If the <<features-externalFormatResolve, pname:externalFormatResolve>>
- feature is not enabled and pname:usage contains
- ename:VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, then the image view's
- <<resources-image-view-format-features,format features>> must: contain
- at least one of ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT,
- ename:VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT, or
- ename:VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV
- * [[VUID-VkImageViewCreateInfo-nullColorAttachmentWithExternalFormatResolve-09359]]
- If the <<limits-nullColorAttachmentWithExternalFormatResolve,
- pname:nullColorAttachmentWithExternalFormatResolve>> property is
- ename:VK_FALSE and pname:usage contains
- ename:VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, then the image view's
- <<resources-image-view-format-features,format features>> must: contain
- at least one of ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT,
- ename:VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT, or
- ename:VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV
- * [[VUID-VkImageViewCreateInfo-image-09360]]
- If pname:image was created with a
- slink:VkExternalFormatANDROID::pname:externalFormat value of 0 and
- pname:usage contains ename:VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, then the
- image view's <<resources-image-view-format-features,format features>>
- must: contain at least one of
- ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT,
- ename:VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT, or
- ename:VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV
-endif::VK_ANDROID_external_format_resolve[]
+ or ename:VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV
endif::VK_NV_linear_color_attachment[]
* [[VUID-VkImageViewCreateInfo-subresourceRange-01478]]
pname:subresourceRange.baseMipLevel must: be less than the
@@ -9789,7 +9740,7 @@ include::{generated}/api/handles/VkBufferCollectionFUCHSIA.adoc[]
participation in the buffer collection
-=== Platform initialization for buffer collections
+=== Platform Initialization for Buffer Collections
To initialize a buffer collection on Fuchsia:
* Connect to the Sysmem service to initialize a Sysmem allocator
@@ -9799,7 +9750,7 @@ To initialize a buffer collection on Fuchsia:
fuchsia.dev for more detailed information
-=== Create the buffer collection
+=== Create the Buffer Collection
[open,refpage='vkCreateBufferCollectionFUCHSIA',desc='Create a new buffer collection',type='protos']
--
@@ -9856,12 +9807,12 @@ include::{generated}/validity/structs/VkBufferCollectionCreateInfoFUCHSIA.adoc[]
--
-=== Set the constraints
+=== Set the Constraints
Buffer collections can be established for slink:VkImage allocations or
slink:VkBuffer allocations.
-==== Set image-based buffer collection constraints
+==== Set Image-based Buffer Collection Constraints
[open,refpage='vkSetBufferCollectionImageConstraintsFUCHSIA',desc='Set image-based constraints for a buffer collection',type='protos']
--
@@ -10096,7 +10047,7 @@ include::{generated}/validity/structs/VkSysmemColorSpaceFUCHSIA.adoc[]
--
-==== Set buffer-based buffer collection constraints
+==== Set Buffer-based Buffer Collection Constraints
[open,refpage='vkSetBufferCollectionBufferConstraintsFUCHSIA',desc='Set buffer-based constraints for a buffer collection',type='protos']
--
@@ -10155,7 +10106,7 @@ include::{generated}/validity/structs/VkBufferConstraintsInfoFUCHSIA.adoc[]
--
-=== Retrieve buffer collection properties
+=== Retrieve Buffer Collection Properties
[open,refpage='vkGetBufferCollectionPropertiesFUCHSIA',desc='Retrieve properties from a buffer collection',type='protos']
--
@@ -10263,7 +10214,7 @@ include::{generated}/validity/structs/VkBufferCollectionPropertiesFUCHSIA.adoc[]
--
-=== Memory allocation
+=== Memory Allocation
To import memory from a buffer collection into a slink:VkImage or a
slink:VkBuffer, chain a slink:VkImportMemoryBufferCollectionFUCHSIA
diff --git a/chapters/samplers.adoc b/chapters/samplers.adoc
index a9c68485..1522ff91 100644
--- a/chapters/samplers.adoc
+++ b/chapters/samplers.adoc
@@ -264,20 +264,14 @@ ifdef::VK_IMG_filter_cubic,VK_EXT_filter_cubic[]
ename:VK_FALSE
endif::VK_IMG_filter_cubic,VK_EXT_filter_cubic[]
ifdef::VK_IMG_filter_cubic+VK_EXT_sampler_filter_minmax[]
-ifndef::VK_EXT_filter_cubic[]
- * [[VUID-VkSamplerCreateInfo-magFilter-01422]]
- If either pname:magFilter or pname:minFilter is
- ename:VK_FILTER_CUBIC_EXT, the pname:reductionMode member of
- slink:VkSamplerReductionModeCreateInfo must: be
- ename:VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE
-endif::VK_EXT_filter_cubic[]
-ifdef::VK_EXT_filter_cubic[]
* [[VUID-VkSamplerCreateInfo-magFilter-07911]]
- If the apiext:VK_EXT_filter_cubic extension is not enabled and either
- pname:magFilter or pname:minFilter is ename:VK_FILTER_CUBIC_EXT, the
- pname:reductionMode member of slink:VkSamplerReductionModeCreateInfo
- must: be ename:VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE
+ If
+ifdef::VK_EXT_filter_cubic[]
+ the apiext:VK_EXT_filter_cubic extension is not enabled and
endif::VK_EXT_filter_cubic[]
+ either pname:magFilter or pname:minFilter is ename:VK_FILTER_CUBIC_EXT,
+ the pname:reductionMode member of slink:VkSamplerReductionModeCreateInfo
+ must: be ename:VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE
endif::VK_IMG_filter_cubic+VK_EXT_sampler_filter_minmax[]
ifdef::VK_VERSION_1_2,VK_EXT_sampler_filter_minmax[]
* [[VUID-VkSamplerCreateInfo-compareEnable-01423]]
@@ -740,7 +734,7 @@ include::{generated}/validity/protos/vkDestroySampler.adoc[]
ifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
[[samplers-YCbCr-conversion]]
-== Sampler {YCbCr} conversion
+== Sampler {YCbCr} Conversion
[open,refpage='VkSamplerYcbcrConversionInfo',desc='Structure specifying {YCbCr} conversion to a sampler or image view',type='structs']
--
@@ -912,20 +906,17 @@ endif::VK_ANDROID_external_memory_android_hardware_buffer[]
.Valid Usage
****
-ifndef::VK_ANDROID_external_memory_android_hardware_buffer[]
- * [[VUID-VkSamplerYcbcrConversionCreateInfo-format-04060]]
- pname:format must: represent unsigned normalized values (i.e. the format
- must: be a etext:UNORM format)
-endif::VK_ANDROID_external_memory_android_hardware_buffer[]
ifdef::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-VkSamplerYcbcrConversionCreateInfo-format-01904]]
If an external format conversion is being created, pname:format must: be
ename:VK_FORMAT_UNDEFINED
+endif::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-VkSamplerYcbcrConversionCreateInfo-format-04061]]
- If an external format conversion is not being created, pname:format
- must: represent unsigned normalized values (i.e. the format must: be a
- etext:UNORM format)
+ifdef::VK_ANDROID_external_memory_android_hardware_buffer[]
+ If an external format conversion is not being created,
endif::VK_ANDROID_external_memory_android_hardware_buffer[]
+ pname:format must: represent unsigned normalized values (i.e. the format
+ must: be a etext:UNORM format)
* [[VUID-VkSamplerYcbcrConversionCreateInfo-format-01650]]
The <<potential-format-features, potential format features>> of the
sampler {YCbCr} conversion must: support
diff --git a/chapters/shaders.adoc b/chapters/shaders.adoc
index 01b56e79..4d53bd21 100644
--- a/chapters/shaders.adoc
+++ b/chapters/shaders.adoc
@@ -758,7 +758,7 @@ unbound).
* [[VUID-vkCmdBindShadersEXT-pStages-08464]]
pname:pStages must: not contain ename:VK_SHADER_STAGE_ALL_GRAPHICS or
ename:VK_SHADER_STAGE_ALL
-ifdef::VK_KHR_ray_tracing_pipeline[]
+ifdef::VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing[]
* [[VUID-vkCmdBindShadersEXT-pStages-08465]]
pname:pStages must: not contain ename:VK_SHADER_STAGE_RAYGEN_BIT_KHR,
ename:VK_SHADER_STAGE_ANY_HIT_BIT_KHR,
@@ -766,18 +766,7 @@ ifdef::VK_KHR_ray_tracing_pipeline[]
ename:VK_SHADER_STAGE_MISS_BIT_KHR,
ename:VK_SHADER_STAGE_INTERSECTION_BIT_KHR, or
ename:VK_SHADER_STAGE_CALLABLE_BIT_KHR
-endif::VK_KHR_ray_tracing_pipeline[]
-ifndef::VK_KHR_ray_tracing_pipeline[]
-ifdef::VK_NV_ray_tracing[]
- * [[VUID-vkCmdBindShadersEXT-pStages-08466]]
- pname:pStages must: not contain ename:VK_SHADER_STAGE_RAYGEN_BIT_NV,
- ename:VK_SHADER_STAGE_ANY_HIT_BIT_NV,
- ename:VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV,
- ename:VK_SHADER_STAGE_MISS_BIT_NV,
- ename:VK_SHADER_STAGE_INTERSECTION_BIT_NV, or
- ename:VK_SHADER_STAGE_CALLABLE_BIT_NV
-endif::VK_NV_ray_tracing[]
-endif::VK_KHR_ray_tracing_pipeline[]
+endif::VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing[]
ifdef::VK_HUAWEI_subpass_shading[]
* [[VUID-vkCmdBindShadersEXT-pStages-08467]]
pname:pStages must: not contain
@@ -1159,7 +1148,7 @@ bound, but all required state must: be set prior to issuing drawing
commands.
[[shaders-objects-pipeline-interaction]]
-=== Interaction with Pipelines
+=== Interaction With Pipelines
Calling flink:vkCmdBindShadersEXT causes the pipeline bind points
<<shaders-binding,corresponding to each stage>> in pname:pStages to be
@@ -1297,16 +1286,12 @@ endif::VK_EXT_graphics_pipeline_libraries,VK_KHR_maintenance5[]
.Valid Usage
****
-ifdef::VK_EXT_validation_cache[]
* [[VUID-vkCreateShaderModule-pCreateInfo-06904]]
If pname:pCreateInfo is not `NULL`, pname:pCreateInfo->pNext must: be
- `NULL` or a pointer to a
- slink:VkShaderModuleValidationCacheCreateInfoEXT structure
-endif::VK_EXT_validation_cache[]
-ifndef::VK_EXT_validation_cache[]
- * [[VUID-vkCreateShaderModule-pCreateInfo-06905]]
- If pname:pCreateInfo is not `NULL`, pname:pCreateInfo->pNext must: be
`NULL`
+ifdef::VK_EXT_validation_cache[]
+ or a pointer to a slink:VkShaderModuleValidationCacheCreateInfoEXT
+ structure
endif::VK_EXT_validation_cache[]
****
@@ -1334,13 +1319,14 @@ include::{generated}/api/structs/VkShaderModuleCreateInfo.adoc[]
.Valid Usage
****
-ifndef::VK_NV_glsl_shader[]
:prefixCondition:
-include::{chapters}/commonvalidity/shader_create_spv_common.adoc[]
-endif::VK_NV_glsl_shader[]
ifdef::VK_NV_glsl_shader[]
:prefixCondition: If pCode is a pointer to SPIR-V code,
+endif::VK_NV_glsl_shader[]
+
include::{chapters}/commonvalidity/shader_create_spv_common.adoc[]
+
+ifdef::VK_NV_glsl_shader[]
* [[VUID-VkShaderModuleCreateInfo-pCode-07912]]
If the apiext:VK_NV_glsl_shader extension is not enabled, pname:pCode
must: be a pointer to SPIR-V code
@@ -2277,7 +2263,7 @@ endif::VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline[]
[[shaders-interpolation-decorations]]
-== Interpolation decorations
+== Interpolation Decorations
Variables in the code:Input storage class in a fragment shader's interface
are interpolated from the values specified by the primitive being
diff --git a/chapters/sparsemem.adoc b/chapters/sparsemem.adoc
index ebcd97ba..7ebe0f40 100644
--- a/chapters/sparsemem.adoc
+++ b/chapters/sparsemem.adoc
@@ -1661,6 +1661,8 @@ include::{generated}/api/structs/VkSparseImageMemoryBind.adoc[]
pname:offset.x must: be a multiple of the sparse image block width
(sname:VkSparseImageFormatProperties::pname:imageGranularity.width) of
the image
+ * [[VUID-VkSparseImageMemoryBind-extent-09388]]
+ pname:extent.width must: be greater than `0`
* [[VUID-VkSparseImageMemoryBind-extent-01108]]
pname:extent.width must: either be a multiple of the sparse image block
width of the image, or else [eq]#(pname:extent.width {plus}
@@ -1669,6 +1671,8 @@ include::{generated}/api/structs/VkSparseImageMemoryBind.adoc[]
pname:offset.y must: be a multiple of the sparse image block height
(sname:VkSparseImageFormatProperties::pname:imageGranularity.height) of
the image
+ * [[VUID-VkSparseImageMemoryBind-extent-09389]]
+ pname:extent.height must: be greater than `0`
* [[VUID-VkSparseImageMemoryBind-extent-01110]]
pname:extent.height must: either be a multiple of the sparse image block
height of the image, or else [eq]#(pname:extent.height {plus}
@@ -1677,6 +1681,8 @@ include::{generated}/api/structs/VkSparseImageMemoryBind.adoc[]
pname:offset.z must: be a multiple of the sparse image block depth
(sname:VkSparseImageFormatProperties::pname:imageGranularity.depth) of
the image
+ * [[VUID-VkSparseImageMemoryBind-extent-09390]]
+ pname:extent.depth must: be greater than `0`
* [[VUID-VkSparseImageMemoryBind-extent-01112]]
pname:extent.depth must: either be a multiple of the sparse image block
depth of the image, or else [eq]#(pname:extent.depth {plus}
diff --git a/chapters/synchronization.adoc b/chapters/synchronization.adoc
index cb102396..3496ee1d 100644
--- a/chapters/synchronization.adoc
+++ b/chapters/synchronization.adoc
@@ -4374,7 +4374,7 @@ endif::VK_KHR_swapchain[]
[[synchronization-semaphores-waiting-state]]
-=== Semaphore State Requirements For Wait Operations
+=== Semaphore State Requirements for Wait Operations
Before waiting on a semaphore, the application must: ensure the semaphore is
in a valid state for a wait operation.
@@ -5636,6 +5636,16 @@ signal operation occurs, and no dependency is generated.
be enabled
* [[VUID-vkCmdSetEvent2-dependencyFlags-03825]]
The pname:dependencyFlags member of pname:pDependencyInfo must: be `0`
+ * [[VUID-vkCmdSetEvent2-srcStageMask-09391]]
+ The pname:srcStageMask member of any element of the
+ pname:pMemoryBarriers, pname:pBufferMemoryBarriers, or
+ pname:pImageMemoryBarriers members of pname:pDependencyInfo must: not
+ include ename:VK_PIPELINE_STAGE_2_HOST_BIT
+ * [[VUID-vkCmdSetEvent2-dstStageMask-09392]]
+ The pname:dstStageMask member of any element of the
+ pname:pMemoryBarriers, pname:pBufferMemoryBarriers, or
+ pname:pImageMemoryBarriers members of pname:pDependencyInfo must: not
+ include ename:VK_PIPELINE_STAGE_2_HOST_BIT
ifdef::VK_VERSION_1_1,VK_KHR_device_group[]
* [[VUID-vkCmdSetEvent2-commandBuffer-03826]]
The current device mask of pname:commandBuffer must: include exactly one
@@ -5760,7 +5770,7 @@ include::{chapters}/commonvalidity/stage_mask_common.adoc[]
pname:stageMask must: not include ename:VK_PIPELINE_STAGE_HOST_BIT
ifdef::VK_VERSION_1_1,VK_KHR_device_group[]
* [[VUID-vkCmdSetEvent-commandBuffer-01152]]
- pname:commandBuffer's current device mask must: include exactly one
+ The current device mask of pname:commandBuffer must: include exactly one
physical device
endif::VK_VERSION_1_1,VK_KHR_device_group[]
****
@@ -7602,7 +7612,7 @@ endif::VK_VERSION_1_1,VK_KHR_device_group[]
ifdef::VK_EXT_calibrated_timestamps[]
[[calibrated-timestamps]]
-== Calibrated timestamps
+== Calibrated Timestamps
[open,refpage='vkGetCalibratedTimestampsEXT',desc='Query calibrated timestamps',type='protos']
--
diff --git a/chapters/textures.adoc b/chapters/textures.adoc
index f5528a9a..e3c06352 100644
--- a/chapters/textures.adoc
+++ b/chapters/textures.adoc
@@ -2214,7 +2214,7 @@ Operations then proceed to Unnormalized Texel Coordinate Operations.
[[textures-unnormalized-to-integer]]
-=== (u,v,w,a) to (i,j,k,l,n) Transformation And Array Layer Selection
+=== (u,v,w,a) to (i,j,k,l,n) Transformation and Array Layer Selection
The unnormalized texel coordinates are transformed to integer texel
coordinates relative to the selected mipmap level.
diff --git a/chapters/video_encode_h264_extensions.adoc b/chapters/video_encode_h264_extensions.adoc
index e2dec540..eb81e973 100644
--- a/chapters/video_encode_h264_extensions.adoc
+++ b/chapters/video_encode_h264_extensions.adoc
@@ -20,7 +20,7 @@ external materials not created by Khronos.
====
-=== H.264 encode profile
+=== H.264 Encode Profile
[open,refpage='VkVideoEncodeH264ProfileInfoEXT',desc='Structure specifying H.264 encode profile',type='structs']
--
@@ -553,7 +553,7 @@ include::{generated}/validity/structs/VkVideoEncodeH264DpbSlotInfoEXT.adoc[]
--
-=== Rate control
+=== Rate Control
[open,refpage='VkVideoEncodeH264RateControlInfoEXT',desc='Structure describing H.264 stream rate control parameters',type='structs']
--
diff --git a/chapters/video_encode_h265_extensions.adoc b/chapters/video_encode_h265_extensions.adoc
index e601041a..1802994f 100644
--- a/chapters/video_encode_h265_extensions.adoc
+++ b/chapters/video_encode_h265_extensions.adoc
@@ -20,7 +20,7 @@ external materials not created by Khronos.
====
-=== H.265 encode profile
+=== H.265 Encode Profile
An H.265 encode profile is specified by including the
slink:VkVideoEncodeH265ProfileInfoEXT structure in the pname:pNext chain of
@@ -656,7 +656,7 @@ include::{generated}/validity/structs/VkVideoEncodeH265DpbSlotInfoEXT.adoc[]
--
-=== Rate control
+=== Rate Control
[open,refpage='VkVideoEncodeH265RateControlInfoEXT',desc='Structure describing H.265 stream rate control parameters',type='structs']
--
diff --git a/config/CI/contractions-allowed b/config/CI/contractions-allowed
index 5f4cbd0f..031d9297 100644
--- a/config/CI/contractions-allowed
+++ b/config/CI/contractions-allowed
@@ -15,3 +15,4 @@
^scripts/json_c_generator\.py
^scripts/json_generator\.py
^scripts/json_parser\.py
+^build_tests/expectations/.*\.html
diff --git a/registry.adoc b/registry.adoc
index 5d9eed33..ff173280 100644
--- a/registry.adoc
+++ b/registry.adoc
@@ -256,15 +256,15 @@ This allows specializing a definition for different, closely related APIs.
[[schema:root]]
-= Registry Root (tag:registry tag)
+= Registry Root (tag:registry Tag)
A tag:registry contains the entire definition of one or more related APIs.
-== Attributes of tag:registry tags
+== Attributes of tag:registry Tags
None.
-== Contents of tag:registry tags
+== Contents of tag:registry Tags
Zero or more of each of the following tags, normally in this order (although
order should not be important):
@@ -308,7 +308,7 @@ order should not be important):
[[tag-comment]]
-=== Comment Tags (tag:comment tag)
+=== Comment Tags (tag:comment Tag)
A tag:comment tag contains an arbitrary string, and is unused.
Comment tags may appear in multiple places in the schema, as described
@@ -318,28 +318,28 @@ in generated headers, asciidoc include files, etc.
[[tag-platforms]]
-= Platform Name Blocks (tag:platforms tag)
+= Platform Name Blocks (tag:platforms Tag)
A tag:platforms contains descriptions of platform IDs for platforms
supported by window system-specific extensions to Vulkan.
-== Attributes of tag:platforms tags
+== Attributes of tag:platforms Tags
* attr:comment - optional.
Arbitrary string (unused).
-== Contents of tag:platforms tags
+== Contents of tag:platforms Tags
Zero or more tag:platform tags, in arbitrary order (though they are
typically ordered by sorting on the platform name).
[[tag-platform]]
-= Platform Names (tag:platform tag)
+= Platform Names (tag:platform Tag)
A tag:platform tag describes a single platform name.
-== Attributes of tag:platform tags
+== Attributes of tag:platform Tags
* attr:name - required.
The platform name.
@@ -386,35 +386,35 @@ is used for the `xlib_xrandr` platform name.
* attr:comment - optional.
Arbitrary string (unused).
-== Contents of tag:platform tags
+== Contents of tag:platform Tags
No contents are allowed.
All information is contained in the attributes.
[[tag-tags]]
-= Author ID Blocks (tag:tags tag)
+= Author ID Blocks (tag:tags Tag)
A tag:tags tag contains tag:authorid tags describing reserved author IDs
used by extension and layer authors.
-== Attributes of tag:tags tags
+== Attributes of tag:tags Tags
* attr:comment - optional.
Arbitrary string (unused).
-== Contents of tag:tags tags
+== Contents of tag:tags Tags
Zero or more tag:tag tags, in arbitrary order (though they are typically
ordered by sorting on the author ID).
[[tag-tag]]
-= Author IDs (tag:tag tag)
+= Author IDs (tag:tag Tag)
A tag:tag tag contains information defining a single author ID.
-== Attributes of tag:tag tags
+== Attributes of tag:tag Tags
* attr:name - required.
The author ID, as registered with Khronos.
@@ -428,23 +428,23 @@ A tag:tag tag contains information defining a single author ID.
reach the contact such as individual name together with email address,
GitHub username, or other contact information.
-== Contents of tag:tag tags
+== Contents of tag:tag Tags
No contents are allowed.
All information is contained in the attributes.
[[tag-types]]
-= API Type Blocks (tag:types tag)
+= API Type Blocks (tag:types Tag)
A tag:types tag contains definitions of derived types used in the API.
-== Attributes of tag:types tags
+== Attributes of tag:types Tags
* attr:comment - optional.
Arbitrary string (unused).
-== Contents of tag:types tags
+== Contents of tag:types Tags
Zero or more tag:type and tag:comment tags, in arbitrary order (though they
are typically ordered by putting dependencies of other types earlier in the
@@ -453,7 +453,7 @@ The tag:comment tags are used mostly to indicate grouping of related types.
[[tag-type]]
-= API Type (tag:type tag)
+= API Type (tag:type Tag)
A tag:type tag contains information which can be used to generate C code
corresponding to the type.
@@ -462,7 +462,7 @@ denoting the type name and other types used in defining this type.
In some cases, additional attribute and embedded type information is used to
generate more complicated C types.
-== Attributes of tag:type tags
+== Attributes of tag:type Tags
* attr:requires - optional.
Another type name this type requires to complete its definition.
@@ -522,11 +522,11 @@ generate more complicated C types.
this type.
The enumerant must be defined.
-== Contents of tag:type tags
+== Contents of tag:type Tags
The valid contents depend on the attr:category attribute.
-=== Enumerated types - attr:category `"enum"`
+=== Enumerated Types - attr:category `"enum"`
If the attr:category tag has the value `enum`, the type is a C enumeration.
The body of the tag is ignored in this case.
@@ -535,7 +535,7 @@ attr:name attribute of a <<tag-enums,tag:enums>> tag.
The enumerant values defined within the tag:enums tag are used to generate a
C `enum` type declaration.
-=== Structure types - attr:category `"struct"` or `"union"`
+=== Structure Types - attr:category `"struct"` or `"union"`
If the attr:category tag has the values `struct` or `union`, the type is a C
structure or union, respectively.
@@ -543,11 +543,11 @@ In this case, the attr:name attribute must be provided, and the contents of
the tag:type tag are a series of tag:member tags defining the members of the
aggregate type, in order, interleaved with any number of tag:comment tags.
-==== Structure member (tag:member) tags
+==== Structure Member (tag:member) Tags
The tag:member tag defines the type and name of a structure or union member.
-==== Attributes of tag:member tags
+==== Attributes of tag:member Tags
* attr:api - optional <<schema:apiname, API names>> for which this
definition is specialized, so that different APIs may have different
@@ -657,7 +657,7 @@ Explicitly specifying `optional="false"` is not supported, but
in the array. Is assumed tightly packed if omitted.
-==== Contents of tag:member tags
+==== Contents of tag:member Tags
The text elements of a tag:member tag, with all other tags removed, is a
legal C declaration of a struct or union member.
@@ -679,7 +679,7 @@ In addition it may contain several semantic tags:
It contains an arbitrary string (unused).
-=== All other types
+=== All Other Types
If the attr:category attribute is one of `basetype`, `bitmask`, `define`,
`funcpointer`, `group`, `handle` or `include`, or is not specified, tag:type
@@ -724,7 +724,7 @@ The intended purpose of each category is:
[[tag-types:example]]
-== Example of a tag:types tag
+== Example of a tag:types Tag
[source,xml]
--------------------------------------
@@ -773,7 +773,7 @@ preferred.
[[tag-enums]]
-= Enumerant Blocks (tag:enums tag)
+= Enumerant Blocks (tag:enums Tag)
The tag:enums tags contain individual tag:enum tags describing each of the
token names used in the API.
@@ -789,7 +789,7 @@ was based on.
====
-== Attributes of tag:enums tags
+== Attributes of tag:enums Tags
* attr:name - optional.
String naming the C `enum` type whose members are defined by this enum
@@ -806,13 +806,13 @@ was based on.
Bit width required for the generated enum value type.
If omitted, a default value of 32 is used.
-== Contents of tag:enums tags
+== Contents of tag:enums Tags
Each tag:enums block contains zero or more tag:enum, tag:unused, and
tag:comment tags, in arbitrary order (although they are typically ordered by
sorting on enumerant values, to improve human readability).
-== Example of tag:enums tags
+== Example of tag:enums Tags
<<tag-types:example,An example>> showing a tag with attribute
attr:type`="enum"` is given above.
@@ -837,11 +837,11 @@ this results in
[[tag-enum]]
-= Enumerants (tag:enum tag)
+= Enumerants (tag:enum Tag)
Each tag:enum tag defines a single Vulkan (or other API) token.
-== Attributes of tag:enum tags
+== Attributes of tag:enum Tags
* attr:value is a numeric value in the form of a legal C expression when
evaluated at compile time in the generated header files.
@@ -917,14 +917,14 @@ expected to be a benign change.
====
-== Contents of tag:enum tags
+== Contents of tag:enum Tags
tag:enum tags have no allowed contents.
All information is contained in the attributes.
[[tag-unused]]
-= Unused Enumerants (tag:unused tag)
+= Unused Enumerants (tag:unused Tag)
Each tag:unused tag defines a range of enumerants which is allocated, but
not yet assigned to specific enums.
@@ -940,7 +940,7 @@ However, they are rarely used in the Vulkan XML schema, unlike the OpenGL
XML schema it was based on.
====
-== Attributes of tag:unused tags
+== Attributes of tag:unused Tags
* attr:start - required, attr:end - optional.
Integers defining the start and end of an unused range of enumerants.
@@ -957,23 +957,23 @@ XML schema it was based on.
* attr:comment - optional.
Arbitrary string (unused).
-== Contents of tag:unused tags
+== Contents of tag:unused Tags
None.
[[tag-commands]]
-= Command Blocks (tag:commands tag)
+= Command Blocks (tag:commands Tag)
The tag:commands tag contains definitions of each of the functions
(commands) used in the API.
-== Attributes of tag:commands tags
+== Attributes of tag:commands Tags
* attr:comment - optional.
Arbitrary string (unused).
-== Contents of tag:commands tags
+== Contents of tag:commands Tags
Each tag:commands block contains zero or more tag:command tags, in arbitrary
order (although they are typically ordered by sorting on the command name,
@@ -981,12 +981,12 @@ to improve human readability).
[[tag-command]]
-= Commands (tag:command tag)
+= Commands (tag:command Tag)
The tag:command tag contains a structured definition of a single API command
(function).
-== Attributes of tag:command tags
+== Attributes of tag:command Tags
There are two ways to define a command.
The first uses a set of attributes to the tag:command tag defining
@@ -1052,7 +1052,7 @@ Both forms of tag:command support these options:
attribute.
May be used to address subtle incompatibilities.
-== Contents of tag:command tags
+== Contents of tag:command Tags
* tag:proto is required and must be the first element.
It is a tag defining the C function prototype of a command as described
@@ -1092,11 +1092,11 @@ or `vkGetDeviceProcAddr`.
[[tag-command:proto]]
-== Command prototype (tag:proto tags)
+== Command Prototype (tag:proto Tags)
The tag:proto tag defines the return type and name of a command.
-=== Attributes of tag:proto tags
+=== Attributes of tag:proto Tags
None.
@@ -1105,7 +1105,7 @@ None.
// If the group name is defined, it may be interpreted as described in
// <<tag-group:meaning>>.
-=== Contents of tag:proto tags
+=== Contents of tag:proto Tags
The text elements of a tag:proto tag, with all other tags removed, is legal
C code describing the return type and name of a command.
@@ -1122,7 +1122,7 @@ In addition to text, it may contain two semantic tags:
[[tag-command:param]]
-== Command parameter (tag:param tags)
+== Command Parameter (tag:param Tags)
The tag:param tag defines the type and name of a parameter.
Its contents are very similar to the tag:member tag used to define struct
@@ -1130,7 +1130,7 @@ and union members.
[[tag-command:param:attr]]
-=== Attributes of tag:param tags
+=== Attributes of tag:param Tags
* attr:api - optional <<schema:apiname, API names>> for which this
definition is specialized, so that different APIs may have different
@@ -1221,7 +1221,7 @@ require external synchronization.
the parameter.
-=== Contents of tag:param tags
+=== Contents of tag:param Tags
The text elements of a tag:param tag, with all other tags removed, is legal
C code describing the type and name of a function parameter.
@@ -1235,7 +1235,7 @@ In addition it may contain two semantic tags:
* The tag:name tag is required, and contains the parameter name being
described.
-== Example of a tag:commands tag
+== Example of a tag:commands Tag
[source,xml]
--------------------------------------
@@ -1259,14 +1259,14 @@ VkResult vkCreateInstance(
[[tag-feature]]
-= API Features and Versions (tag:feature tag)
+= API Features and Versions (tag:feature Tag)
API features are described in individual tag:feature tags.
A feature is the set of interfaces (enumerants and commands) defined by a
particular API and version, such as Vulkan 1.0, and includes all profiles of
that API and version.
-== Attributes of tag:feature tags
+== Attributes of tag:feature Tags
* attr:api - required comma-separated list of <<schema:apiname, API
names>> for which this feature is defined, such as `vulkan`.
@@ -1302,14 +1302,14 @@ The similar `"VK_API_VERSION_1_0"` symbols are part of the API and their
values are packed integers containing Vulkan core version numbers.
====
-== Contents of tag:feature tags
+== Contents of tag:feature Tags
Zero or more <<tag-required,tag:require and tag:remove tags>>, in arbitrary
order.
Each tag describes a set of interfaces that is respectively required for, or
removed from, this feature, as described below.
-== Example of a tag:feature tag
+== Example of a tag:feature Tag
[source,xml]
--------------------------------------
@@ -1346,17 +1346,17 @@ VKAPI_ATTR VkResult VKAPI_CALL vkCreateInstance(
[[tag-extensions]]
-= Extension Blocks (tag:extensions tag)
+= Extension Blocks (tag:extensions Tag)
The tag:extensions tag contains definitions of each of the extensions which
are defined for the API.
-== Attributes of tag:extensions tags
+== Attributes of tag:extensions Tags
* attr:comment - optional.
Arbitrary string (unused).
-== Contents of tag:extensions tags
+== Contents of tag:extensions Tags
Each tag:extensions block contains zero or more tag:extension tags, each
describing an API extension, in arbitrary order (although they are typically
@@ -1364,7 +1364,7 @@ ordered by sorting on the extension name, to improve human readability).
[[tag-extension]]
-= API Extensions (tag:extension tag)
+= API Extensions (tag:extension Tag)
API extensions are described in individual tag:extension tags.
An extension is the set of interfaces defined by a particular API extension
@@ -1374,7 +1374,7 @@ attr:number attribute, it instead has a attr:supported attribute, which
describes the set of API names which the extension can potentially be
implemented against.
-== Attributes of tag:extension tags
+== Attributes of tag:extension Tags
* attr:name - required.
Extension name, following the conventions in the <<vulkan-spec, Vulkan
@@ -1515,14 +1515,14 @@ Such functionality should be specified within a tag:require tag, using the
attr:depends attribute to specify that extension.
====
-== Contents of tag:extension tags
+== Contents of tag:extension Tags
Zero or more <<tag-required,tag:require and tag:remove tags>>, in arbitrary
order.
Each tag describes a set of interfaces that is respectively required for, or
removed from, this extension, as described below.
-== Example of an tag:extensions tag
+== Example of an tag:extensions Tag
[source,xml]
--------------------------------------
@@ -1577,7 +1577,7 @@ VKAPI_ATTR VkResult VKAPI_CALL vkCreateSharedSwapchainsKHR(
[[tag-required]]
-= Required and Removed Interfaces (tag:require and tag:remove tags)
+= Required and Removed Interfaces (tag:require and tag:remove Tags)
A tag:require block defines a set of interfaces (types, enumerants and
commands) 'required' by a tag:feature or tag:extension.
@@ -1589,7 +1589,7 @@ the schema).
Except for the tag name and behavior, the contents of tag:require and
tag:remove tags are identical.
-== Attributes of tag:require and tag:remove tags
+== Attributes of tag:require and tag:remove Tags
* attr:profile - optional.
String name of an API profile.
@@ -1612,7 +1612,7 @@ The attr:api attribute is only supported inside tag:extension tags, since
tag:feature tags already define a specific API.
====
-== Attributes of tag:require tags
+== Attributes of tag:require Tags
These attributes are allowed only for a tag:require tag.
@@ -1632,7 +1632,7 @@ attr:depends is a breaking change in Vulkan 1.3.241, replacing the
====
--
-== Contents of tag:require and tag:remove tags
+== Contents of tag:require and tag:remove Tags
Zero or more of the following tags, in any order:
@@ -1651,7 +1651,7 @@ The tag has no content, but contains attributes:
* attr:comment - optional.
Arbitrary string (unused).
-=== Enum tags
+=== Enum Tags
tag:enum specifies an required (or removed) enumerant defined in a tag:enums
block.
@@ -1759,7 +1759,7 @@ Examples of <<tag-required-examples,various types of extension enumerants>>
are given below.
-=== Type tags
+=== Type Tags
tag:type specifies a required (or removed) type defined in a tag:types
block.
@@ -1817,26 +1817,26 @@ typedef enum VkResult {
[[tag-formats]]
-= Formats (tag:formats tag)
+= Formats (tag:formats Tag)
The tag:formats tag contains definitions of each of the image formats which
are defined for the API.
-== Attributes of tag:formats tags
+== Attributes of tag:formats Tags
None.
// * attr:comment - optional.
// Arbitrary string (unused).
-== Contents of tag:formats tags
+== Contents of tag:formats Tags
A tag:formats block contains zero or more tag:format tags, each describing
an image format, in arbitrary order.
[[tag-format]]
-= Image Format (tag:format tag)
+= Image Format (tag:format Tag)
Image formats are described in individual tag:format tags.
An image format corresponds to a Vulkan `VkFormat` enumerant.
@@ -1846,7 +1846,7 @@ The meaning of different parts of the format information is described in
more detail in the "`Format Definition`" section of the <<vulkan-spec,
Vulkan API Specification>>.
-== Attributes of tag:format tags
+== Attributes of tag:format Tags
* attr:name - required.
Format name, matching a `VkFormat` tag:enum attr:name.
@@ -1883,7 +1883,7 @@ Vulkan API Specification>>.
Must be one of the three values `"420"`, `"422"`, or `"444"`
corresponding to different {YCbCr} encodings.
-== Contents of tag:format tags
+== Contents of tag:format Tags
One or more <<tag-component,tag:component>> tags.
The order of tag:component tags corresponds to the memory order of
@@ -1898,7 +1898,7 @@ Zero or more <<tag-spirvimageformat,tag:spirvimageformat>> tags, in
arbitrary order.
Each tag describes a SPIR-V format name corresponding to the tag:format.
-== Example of a tag:format tag
+== Example of a tag:format Tag
[source,xml]
--------------------------------------
@@ -1913,12 +1913,12 @@ Each tag describes a SPIR-V format name corresponding to the tag:format.
[[tag-component]]
-= Format Components (tag:component tag)
+= Format Components (tag:component Tag)
The tag:component tag contains definitions of each of the components which
are part of an image format.
-== Attributes of tag:component tags
+== Attributes of tag:component Tags
* attr:name - required.
A string specifying the name of this component.
@@ -1946,18 +1946,18 @@ are part of an image format.
If present, must correspond to the attr:index attribute value of a
tag:plane tag for the same tag:component.
-== Contents of tag:component tags
+== Contents of tag:component Tags
None.
[[tag-plane]]
-= Format Planes (tag:plane tag)
+= Format Planes (tag:plane Tag)
The tag:plane tag contains definitions of each of the image planes which are
part of an image format.
-== Attributes of tag:plane tags
+== Attributes of tag:plane Tags
* attr:index - required.
An integer specifying the image plane being defined.
@@ -1976,63 +1976,63 @@ part of an image format.
compatible with.
Must match the attr:name of another attr:format.
-== Contents of tag:plane tags
+== Contents of tag:plane Tags
None.
[[tag-spirvimageformat]]
-= SPIR-V Image Formats (tag:spirvimageformat tag)
+= SPIR-V Image Formats (tag:spirvimageformat Tag)
The tag:spirvimageformat tag specifies the name of a SPIR-V image format
equivalent to this format.
-== Attributes of tag:spirvimageformat tags
+== Attributes of tag:spirvimageformat Tags
* attr:name - required.
The name of the SPIR-V image format.
Example: `name="R11fG11fB10f"`.
-== Contents of tag:spirvimageformat tags
+== Contents of tag:spirvimageformat Tags
None.
[[tag-spirvextensions]]
-= SPIR-V Extensions (tag:spirvextensions tag)
+= SPIR-V Extensions (tag:spirvextensions Tag)
The tag:spirvextensions tag contains definitions of each of the SPIR-V
extensions which are defined for the API.
-== Attributes of tag:spirvextensions tags
+== Attributes of tag:spirvextensions Tags
* attr:comment - optional.
Arbitrary string (unused).
-== Contents of tag:spirvextensions tags
+== 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.
[[tag-spirvextension]]
-= SPIR-V Extension (tag:spirvextension tag)
+= SPIR-V Extension (tag:spirvextension Tag)
SPIR-V extensions are described in individual tag:spirvextension tags.
A SPIR-V extension is enabled by API versions or extensions.
-== Attributes of tag:spirvextension tags
+== Attributes of tag:spirvextension Tags
* attr:name - required.
SPIR-V extension name.
Example: `name="SPV_KHR_variable_pointers"`
-== Contents of tag:spirvextension tags
+== Contents of tag:spirvextension Tags
One or more <<tag-spirvenable,tag:enable>> tags, in arbitrary order.
Each tag describes a single enabling mechanism for the extension.
-== Example of a tag:spirvextensions tag
+== Example of a tag:spirvextensions Tag
[source,xml]
--------------------------------------
@@ -2044,41 +2044,41 @@ Each tag describes a single enabling mechanism for the extension.
[[tag-spirvcapabilities]]
-= SPIR-V Capabilities (tag:spirvcapabilities tag)
+= SPIR-V Capabilities (tag:spirvcapabilities Tag)
The tag:spirvcapabilities tag contains definitions of each of the SPIR-V
capabilities which are defined for the API.
-== Attributes of tag:spirvcapabilities tags
+== Attributes of tag:spirvcapabilities Tags
* attr:comment - optional.
Arbitrary string (unused).
-== Contents of tag:spirvcapabilities tags
+== 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.
[[tag-spirvcapability]]
-= SPIR-V Capability (tag:spirvcapability tag)
+= SPIR-V Capability (tag:spirvcapability Tag)
SPIR-V capabilities are described in individual tag:spirvcapability tags.
A SPIR-V capability is enabled by API versions, extensions, features, or
properties.
-== Attributes of tag:spirvcapability tags
+== Attributes of tag:spirvcapability Tags
* attr:name - required.
SPIR-V capability name.
Example: `name="SPV_KHR_variable_pointers"`
-== Contents of tag:spirvcapability tags
+== Contents of tag:spirvcapability Tags
One or more <<tag-spirvenable,tag:enable>> tags, in arbitrary order.
Each tag describes a single enabling mechanism for the capability.
-== Example of a tag:spirvcapabilities tag
+== Example of a tag:spirvcapabilities Tag
[source,xml]
--------------------------------------
@@ -2092,7 +2092,7 @@ Each tag describes a single enabling mechanism for the capability.
[[tag-spirvenable]]
-= SPIR-V Enables (tag:enable tag)
+= SPIR-V Enables (tag:enable Tag)
The tag:enable tag describes a single mechanism in the API which enables a
tag:spirvextension or tag:spirvcapability.
@@ -2102,62 +2102,62 @@ tag:spirvextension tags.
Each form is described separately below.
[[tag-syncstage]]
-= Sync Stage (tag:syncstage tag)
+= Sync Stage (tag:syncstage Tag)
The tag:syncstage tag contains definitions of each Pipeline stage.
-== Attributes of tag:syncstage tags
+== Attributes of tag:syncstage Tags
* attr:name - required.
VkPipelineStageFlagBits2 name
* attr:alias - optional.
Semantically equivalent name which is an alias of attr:name.
-== Contents of tag:syncstage tags
+== Contents of tag:syncstage Tags
More information about the Pipeline stage using either
tag:syncequivalent or tag:syncsupport
[[tag-syncaccess]]
-= Sync Access (tag:syncaccess tag)
+= Sync Access (tag:syncaccess Tag)
The tag:syncaccess tag contains definitions of each Access mask.
-== Attributes of tag:syncaccess tags
+== Attributes of tag:syncaccess Tags
* attr:name - required.
VkAccessFlagBits2 name
* attr:alias - optional.
Semantically equivalent name which is an alias of attr:name.
-== Contents of tag:syncaccess tags
+== Contents of tag:syncaccess Tags
More information about the Access mask using either
tag:syncequivalent or tag:syncsupport
[[tag-syncpipeline]]
-= Sync Pipeline (tag:syncpipeline tag)
+= Sync Pipeline (tag:syncpipeline Tag)
The tag:syncpipeline tag contains definitions of each type of Pipeline.
-== Attributes of tag:syncpipeline tags
+== Attributes of tag:syncpipeline Tags
* attr:name - required.
A unique string identifying the pipeline.
-== Contents of tag:syncpipeline tags
+== Contents of tag:syncpipeline Tags
The tag:syncpipeline lists each pipeline stage in logical order using
tag:syncpipelinestage. Stages have extra attributes to describe
special ordering within the list
[[tag-syncsupport]]
-= Sync Support (tag:syncsupport tag)
+= Sync Support (tag:syncsupport Tag)
The tag:syncsupport tag contains information what support there is for
a given Sync element.
-== Attributes of tag:syncsupport tags
+== Attributes of tag:syncsupport Tags
* attr:queues - optional.
A comma-separated list of Queue types that are supported.
@@ -2166,12 +2166,12 @@ a given Sync element.
This is used to cross-reference with tag:syncstage
[[tag-syncequivalent]]
-= Sync Equivalent (tag:syncequivalent tag)
+= Sync Equivalent (tag:syncequivalent Tag)
The tag:syncequivalent tag contains information showing a one-to-many
relationship of Sync elements
-== Attributes of tag:syncsupport tags
+== Attributes of tag:syncsupport Tags
* attr:stage - optional.
A comma-separated list of Sync Stages that are the OR logical
@@ -2244,7 +2244,7 @@ is enabled.
API property enables are not supported for tag:spirvextension tags.
-== Contents of tag:enable tags
+== Contents of tag:enable Tags
None.
@@ -2566,7 +2566,7 @@ specified features are generated.
[[compile-time-constants]]
-== How To Add A Compile Time Constant
+== How to Add a Compile Time Constant
Go to the desired tag:feature or tag:extension tag.
Add (if not present) a nested tag:require block labelled
@@ -2616,7 +2616,7 @@ Allowed expressions are additionally restricted to the following syntax:
* and the entire expression optionally surrounded by paired `(` and `)`.
-== How To Add A Struct or Union Type
+== How to Add a Struct or Union Type
For this example, assume we want to define a type corresponding to a C
`struct` defined as follows:
@@ -2692,7 +2692,7 @@ If the type is a C `union`, rather than a `struct`, then set the value of
the attr:category attribute to `"union"` instead of `"struct"`.
-== How To Add An Enumerated Type
+== How to Add an Enumerated Type
For this example, assume we want to define a type corresponding to a C
`enum` defined as follows:
@@ -2752,7 +2752,7 @@ the C header unchanged.
[[adding-bitflags]]
-== How To Add Bit Flags
+== How to Add Bit Flags
Bit masks are defined by two types in the xml - the type of the mask itself,
and the type of the valid flags.
@@ -2897,7 +2897,7 @@ unsigned value for the 31st bit could change the size of the enum type.
The generator scripts will warn about values exceeding this range.
-== How to Add A Command
+== How to Add a Command
For this example, assume we want to define the command:
@@ -2968,7 +2968,7 @@ This capability is not yet relevant to Vulkan.
Those capabilities will be documented as they are needed.
-== More Complicated Output Formats And Other Languages
+== More Complicated Output Formats and Other Languages
The registry schema is oriented towards C-language APIs.
Types and commands are defined using syntax which is a subset of C,
diff --git a/scripts/extensionmetadocgenerator.py b/scripts/extensionmetadocgenerator.py
index eb47bfc5..6f5e0efc 100644
--- a/scripts/extensionmetadocgenerator.py
+++ b/scripts/extensionmetadocgenerator.py
@@ -298,7 +298,7 @@ class Extension:
write('', file=fp)
if self.deprecationType:
- self.writeTag('Deprecation state', None, isRefpage, fp)
+ self.writeTag('Deprecation State', None, isRefpage, fp)
if self.deprecationType == 'promotion':
if self.supercedingAPIVersion:
diff --git a/style/extensions.adoc b/style/extensions.adoc
index 86cc437a..4e90f1da 100644
--- a/style/extensions.adoc
+++ b/style/extensions.adoc
@@ -274,7 +274,7 @@ Validation Layers, and a variety of language bindings.
[[extensions-author-ID]]
-== Registering an Author ID with Khronos
+== Registering an Author ID With Khronos
Previous Khronos APIs could only officially be modified by Khronos members.
In an effort to build a more flexible platform, Vulkan allows non-Khronos
@@ -305,7 +305,7 @@ faith.
[[extensions-vendor-id]]
-== Registering a Vendor ID with Khronos
+== Registering a Vendor ID With Khronos
Vulkan implementors must report a valid vendor ID for their implementation
when queried by fname:vkGetPhysicalDeviceProperties, as described in the
@@ -1065,7 +1065,7 @@ implementations.
====
-== Accessing Extension Functions from Programs
+== Accessing Extension Functions From Programs
fname:vkGetInstanceProcAddr and fname:vkGetDeviceProcAddr can be used in
order to obtain function pointer addresses for core and extension commands
diff --git a/style/markup.adoc b/style/markup.adoc
index c5a72789..25ef10fe 100644
--- a/style/markup.adoc
+++ b/style/markup.adoc
@@ -130,7 +130,7 @@ in the Table of Contents.
[[markup-layout]]
-== Asciidoc Markup And Text Layout
+== Asciidoc Markup and Text Layout
Asciidoc source should be text filled to 76 columns with hard line breaks.
Each sentence in a paragraph ends with a newline to minimize git diff
@@ -764,7 +764,7 @@ replacement substitutions], resulting in a unicode arrow: ->.
[[markup-macros-api-name]]
-==== When To Use *name: Macros
+==== When to Use *name: Macros
Only use the fname{cl}, sname{cl}, tname{cl}, and dname{cl} macros if no
definition of the target type with a corresponding anchor exists in the
@@ -784,7 +784,7 @@ definitions.
[[markup-macros-api-text]]
-==== When To Use *text: Macros
+==== When to Use *text: Macros
Only use the ftext{cl}, stext{cl}, etext{cl}, and ptext{cl} macros when
describing something that should be rendered like a command, structure,
diff --git a/style/misc.adoc b/style/misc.adoc
index bd6ca835..c5088906 100644
--- a/style/misc.adoc
+++ b/style/misc.adoc
@@ -83,7 +83,7 @@ maintain consistency.
[[character-sets-in-svg]]
-== Character sets in SVG files
+== Character Sets in SVG Files
At the moment, the PDF conversion path only supports the Windows-1252
character set, as we are currently using the standard fonts built into every
@@ -92,7 +92,7 @@ Unfortunately these only support Windows-1252, which is a highly limited
character set.
As such, characters not in that set will not display properly when present
-in an SVG, and will fire a warning when building the PDF.
+in an SVG, and will generate a warning when building the PDF.
Luckily, Inkscape has an "`Object to path`" function built in, which will
convert text to a raw path, allowing these characters to be supported.
diff --git a/style/revisions.adoc b/style/revisions.adoc
index ec7a8392..f2f31748 100644
--- a/style/revisions.adoc
+++ b/style/revisions.adoc
@@ -5,6 +5,8 @@
[[revisions]]
= Revision History
+* 2023-10-11 - Add rules for <<writing-titlecase, writing chapter and
+ section titles>>.
* 2023-10-05 - Mention that <<extensions-reserving-bitmask-values, bit
position 31>> may not be used for enumerated type bitmasks, due to
portability concerns.
diff --git a/style/writing.adoc b/style/writing.adoc
index 14e5a7c6..77d96535 100644
--- a/style/writing.adoc
+++ b/style/writing.adoc
@@ -23,6 +23,26 @@ link:https://blog.oxforddictionaries.com/2015/01/21/video-oxford-comma/[video
discussion of the Oxford comma] provided by the Oxford Dictionary.
+[[writing-titlecase]]
+=== Use AP Title Case for Chapter and Section Titles
+
+Here is a link:https://titlecaseconverter.com/rules/[summary] of the rules:
+
+ * Capitalize the first word and the last word of the title.
+ * Capitalize the principal words.
+ * Capitalize "`to`" in infinitives.
+ * Capitalize all words of four letters or more.
+ * Do not capitalize articles, conjunctions, and prepositions of three
+ letters or fewer.
+
+[NOTE]
+.Note
+====
+The actual AP style guide is behind a paywall.
+The summary here is from a commercial website.
+====
+
+
=== Date Format
Whenever possible, write dates in the <<iso-8601,ISO 8601>> format:
@@ -377,7 +397,7 @@ Occasional non-normative explanations can be included in the
[[writing-describing-errors]]
-=== Commands which Return Error Codes
+=== Commands Which Return Error Codes
Commands which return elink:VkResult values must list all possible error
codes for the command in the `errorcodes` XML attribute for the command.
@@ -1170,7 +1190,7 @@ valid usage statement), the original VUs can be left intact.
[[writing-empty-enumerations]]
-== Markup For Empty Enumerated Types
+== Markup for Empty Enumerated Types
Sometimes an enumerated type has all values defined by extensions, and each
enumerated value defined by the type will be surrounded by an asciidoctor
@@ -1207,7 +1227,7 @@ extensions are enabled in this build of the specification.
[[writing-refpages]]
-== Markup For Automatic Reference Page Extraction
+== Markup for Automatic Reference Page Extraction
The Vulkan reference pages are (mostly) extracted from corresponding
sections of the API Specification.
diff --git a/xml/vk.xml b/xml/vk.xml
index a696de6f..b3a939bc 100644
--- 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> 267</type>
+#define <name>VK_HEADER_VERSION</name> 268</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
@@ -23534,7 +23534,19 @@ typedef void* <name>MTLSharedEvent_id</name>;
<extension name="VK_NV_extension_549" number="549" author="NV" contact="Piers Daniell @pdaniell-nv" supported="disabled">
<require>
<enum value="0" name="VK_NV_EXTENSION_549_SPEC_VERSION"/>
- <enum value="&quot;VK_NV_extension_549&quot;" name="VK_NV_EXTENSION_549_EXTENSION_NAME"/>
+ <enum value="&quot;VK_NV_extension_549&quot;" name="VK_NV_EXTENSION_549_EXTENSION_NAME"/>
+ </require>
+ </extension>
+ <extension name="VK_NV_extension_550" number="550" author="NV" contact="Daniel Koch @dgkoch" supported="disabled">
+ <require>
+ <enum value="0" name="VK_NV_EXTENSION_550_SPEC_VERSION"/>
+ <enum value="&quot;VK_NV_extension_550&quot;" name="VK_NV_EXTENSION_550_EXTENSION_NAME"/>
+ </require>
+ </extension>
+ <extension name="VK_NV_extension_551" number="551" author="NV" contact="Daniel Koch @dgkoch" supported="disabled">
+ <require>
+ <enum value="0" name="VK_NV_EXTENSION_551_SPEC_VERSION"/>
+ <enum value="&quot;VK_NV_extension_551&quot;" name="VK_NV_EXTENSION_551_EXTENSION_NAME"/>
</require>
</extension>
</extensions>