diff --git a/BUILD.adoc b/BUILD.adoc index d282c74546..db1e1d9755 100644 --- a/BUILD.adoc +++ b/BUILD.adoc @@ -139,7 +139,7 @@ on the `makeSpec` command line. Extensions are defined in the same source as the core Specification, but are only conditionally included in the output. -http://asciidoctor.org/docs/user-manual/#attributes[Asciidoctor attributes] +https://asciidoctor.org/docs/user-manual/#attributes[Asciidoctor attributes] of the same name as the extension are used to define whether the extension is included or not -- defining such an attribute will cause the output to include the text for that extension. @@ -265,7 +265,7 @@ gitlab repository. We use many custom Ruby macros in the reference pages and API spec Asciidoctor sources. -The validator scripts rely on these macros as part of their sanity checks, +The validator scripts rely on these macros as part of their checks. and you should use the macros whenever referring to an API command, struct, token, or enum name, so the documents are semantically tagged and more easily verifiable. @@ -322,7 +322,7 @@ created. == Our stylesheets We use an HTML stylesheet `config/khronos.css` derived from the -http://asciidoctor.org/docs/produce-custom-themes-using-asciidoctor-stylesheet-factory/[Asciidoctor +https://asciidoctor.org/docs/produce-custom-themes-using-asciidoctor-stylesheet-factory/[Asciidoctor stylesheet factory] "`colony`" theme, with the default Arial font family replaced by the sans-serif https://en.wikipedia.org/wiki/Noto_fonts[Noto font family]. diff --git a/ChangeLog.txt b/ChangeLog.txt index 1b594ca076..5cd8752889 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -11,6 +11,53 @@ public pull requests that have been accepted. ----------------------------------------------------- +Change log for December 7, 2021 Vulkan 1.2.202 spec update: + + * Update release number to 202 for this update. + +Github Issues: + + * Split some valid usage statements for slink:VkAttachmentDescription + so they can have appropriate conditional protection + (public pull request 1698). + * Clean up links to GLSL and SPIR-V extension documents (public pull + request 1705). + * Fix markup for <> math (public pull request 1711). + +Internal Issues: + + * Clarify valid usage statements for + flink:vkCmdWriteTimestamp2KHR::pname:stage to accomodate + ename:VK_PIPELINE_STAGE_2_NONE_KHR (internal issue 2867). + * Disallow descriptorset decorations on non-descriptor ray tracing + variables in the <> section (internal issue 2881). + * Fix sentence describing behavior when + slink:VkRenderingFragmentDensityMapAttachmentInfoEXT is not present in + the slink:VkRenderingInfoKHR::pname:pNext chain (internal issue 2881). + * Require that + slink:VkPhysicalDeviceRayTracingPipelinePropertiesKHR::pname:shaderGroupHandleAlignment + be a power of two (internal merge request 4943). + * Add a new ename:VK_IMAGE_ASPECT_NONE_KHR=0 enum to + slink:VkImageAspectFlagBits in the apiext:VK_KHR_maintenance4 extension + so that pname:planeAspect can be set to zero without having to use a + cast, and fix some typos (internal merge request 4961). + * Add "`must: be a power of two`" to all alignment limits (internal issue + 2939). + * Make all limit anchors follow the `[[limit-NAME]]` style (internal merge + request 4969). + * Require render pass to be valid and add missing state subset + dependencies to slink:VkGraphicsPipelineCreateInfo valid usage + statements for apiext:VK_ARM_rasterization_order_attachment_access + (internal merge request 4970). + * Parameterize OpenGL and GLSL extension registry URLs via asciidoctor + attributes in `config/attribs.txt`, and move the existing SPIR-V + extension registry URL from the Makefile into that file. Use `https:` + prefixes on URLs instead of `http:` where possible. + +----------------------------------------------------- + Change log for November 30, 2021 Vulkan 1.2.201 spec update: * Update release number to 201 for this update. diff --git a/Makefile b/Makefile index 06bd8067b7..a78cd53600 100644 --- a/Makefile +++ b/Makefile @@ -47,7 +47,8 @@ IMAGEOPTS = inline # manhtml - HTML5 single-page reference guide - NOT SUPPORTED # manpdf - PDF reference guide - NOT SUPPORTED # manhtmlpages - HTML5 separate per-feature refpages -# allchecks - Python sanity checker for script markup and macro use +# allchecks - checks for style guide compliance, XML consistency, and +# other easy to catch errors all: alldocs allchecks @@ -58,14 +59,15 @@ allspecs: html pdf styleguide registry allman: manhtmlpages # CHECK_CONTRACTIONS looks for disallowed contractions +# reflow.py looks for asciidoctor conditionals inside VU statements; +# and for duplicated VUID numbers, but only in spec sources. # check_spec_links.py looks for proper use of custom markup macros # --ignore_count 0 can be incremented if there are unfixable errors # xml_consistency.py performs various XML consistency checks # check_undefined looks for untagged use of 'undefined' in spec sources -# reflow.py looks for asciidoctor conditionals inside VU statements; -# and for duplicated VUID numbers, but only in spec sources. CHECK_CONTRACTIONS = git grep -i -F -f config/CI/contractions | egrep -v -E -f config/CI/contractions-allowed allchecks: + $(PYTHON) $(SCRIPTS)/reflow.py -nowrite -noflow -check FAIL -checkVUID FAIL $(SPECFILES) if test `$(CHECK_CONTRACTIONS) | wc -l` != 0 ; then \ echo "Contractions found that are not allowed:" ; \ $(CHECK_CONTRACTIONS) ; \ @@ -74,7 +76,6 @@ allchecks: $(PYTHON) $(SCRIPTS)/check_spec_links.py -Werror --ignore_count 0 $(PYTHON) $(SCRIPTS)/xml_consistency.py $(SCRIPTS)/ci/check_undefined - $(PYTHON) $(SCRIPTS)/reflow.py -nowrite -noflow -check FAIL -checkVUID FAIL $(SPECFILES) # Note that the := assignments below are immediate, not deferred, and # are therefore order-dependent in the Makefile @@ -127,7 +128,7 @@ VERBOSE = # ADOCOPTS options for asciidoc->HTML5 output NOTEOPTS = -a editing-notes -a implementation-guide -PATCHVERSION = 201 +PATCHVERSION = 202 ifneq (,$(findstring VK_VERSION_1_2,$(VERSIONS))) SPECMINOR = 2 @@ -154,9 +155,6 @@ SPECDATE = $(shell echo `date -u "+%Y-%m-%d %TZ"`) SPECREMARK = from git branch: $(shell echo `git symbolic-ref --short HEAD 2> /dev/null || echo Git branch not available`) \ commit: $(shell echo `git log -1 --format="%H" 2> /dev/null || echo Git commit not available`) -# Base path to SPIR-V extensions on the web. -SPIRVPATH = https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions - # Some of the attributes used in building all spec documents: # chapters - absolute path to chapter sources # appendices - absolute path to appendix sources @@ -176,7 +174,6 @@ ATTRIBOPTS = -a revnumber="$(SPECREVISION)" \ -a chapters=$(CURDIR)/chapters \ -a images=$(IMAGEPATH) \ -a generated=$(GENERATED) \ - -a spirv="$(SPIRVPATH)" \ -a refprefix \ $(VERSIONATTRIBS) \ $(EXTATTRIBS) \ diff --git a/appendices/VK_AMD_gcn_shader.txt b/appendices/VK_AMD_gcn_shader.txt index 3b18ebdc2c..1ee130f039 100644 --- a/appendices/VK_AMD_gcn_shader.txt +++ b/appendices/VK_AMD_gcn_shader.txt @@ -14,7 +14,7 @@ include::{generated}/meta/{refprefix}VK_AMD_gcn_shader.txt[] - This extension requires {spirv}/AMD/SPV_AMD_gcn_shader.html[`SPV_AMD_gcn_shader`] - This extension provides API support for - https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_gcn_shader.txt[`GL_AMD_gcn_shader`] + {GLregistry}/AMD/AMD_gcn_shader.txt[`GL_AMD_gcn_shader`] *Contributors*:: - Dominik Witczak, AMD - Daniel Rakos, AMD diff --git a/appendices/VK_AMD_gpu_shader_half_float.txt b/appendices/VK_AMD_gpu_shader_half_float.txt index d924af72f2..e134236c7f 100644 --- a/appendices/VK_AMD_gpu_shader_half_float.txt +++ b/appendices/VK_AMD_gpu_shader_half_float.txt @@ -14,7 +14,7 @@ include::{generated}/meta/{refprefix}VK_AMD_gpu_shader_half_float.txt[] - This extension requires {spirv}/AMD/SPV_AMD_gpu_shader_half_float.html[`SPV_AMD_gpu_shader_half_float`] - This extension provides API support for - https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_gpu_shader_half_float.txt[`GL_AMD_gpu_shader_half_float`] + {GLregistry}/AMD/AMD_gpu_shader_half_float.txt[`GL_AMD_gpu_shader_half_float`] *Contributors*:: - Daniel Rakos, AMD - Dominik Witczak, AMD diff --git a/appendices/VK_AMD_gpu_shader_int16.txt b/appendices/VK_AMD_gpu_shader_int16.txt index f9dea593e2..7396e62392 100644 --- a/appendices/VK_AMD_gpu_shader_int16.txt +++ b/appendices/VK_AMD_gpu_shader_int16.txt @@ -14,7 +14,7 @@ include::{generated}/meta/{refprefix}VK_AMD_gpu_shader_int16.txt[] - This extension requires {spirv}/AMD/SPV_AMD_gpu_shader_int16.html[`SPV_AMD_gpu_shader_int16`] - This extension provides API support for - https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_gpu_shader_int16.txt[`GL_AMD_gpu_shader_int16`] + {GLregistry}/AMD/AMD_gpu_shader_int16.txt[`GL_AMD_gpu_shader_int16`] *Contributors*:: - Daniel Rakos, AMD - Dominik Witczak, AMD diff --git a/appendices/VK_AMD_shader_ballot.txt b/appendices/VK_AMD_shader_ballot.txt index bf82adb098..dbf7a5caba 100644 --- a/appendices/VK_AMD_shader_ballot.txt +++ b/appendices/VK_AMD_shader_ballot.txt @@ -14,7 +14,7 @@ include::{generated}/meta/{refprefix}VK_AMD_shader_ballot.txt[] - This extension requires {spirv}/AMD/SPV_AMD_shader_ballot.html[`SPV_AMD_shader_ballot`] - This extension provides API support for - https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_shader_ballot.txt[`GL_AMD_shader_ballot`] + {GLregistry}/AMD/AMD_shader_ballot.txt[`GL_AMD_shader_ballot`] *Contributors*:: - Qun Lin, AMD - Graham Sellers, AMD diff --git a/appendices/VK_AMD_shader_explicit_vertex_parameter.txt b/appendices/VK_AMD_shader_explicit_vertex_parameter.txt index 85bce4d3f3..c07d8b3d9f 100644 --- a/appendices/VK_AMD_shader_explicit_vertex_parameter.txt +++ b/appendices/VK_AMD_shader_explicit_vertex_parameter.txt @@ -14,7 +14,7 @@ include::{generated}/meta/{refprefix}VK_AMD_shader_explicit_vertex_parameter.txt - This extension requires {spirv}/AMD/SPV_AMD_shader_explicit_vertex_parameter.html[`SPV_AMD_shader_explicit_vertex_parameter`] - This extension provides API support for - https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_shader_explicit_vertex_parameter.txt[`GL_AMD_shader_explicit_vertex_parameter`] + {GLregistry}/AMD/AMD_shader_explicit_vertex_parameter.txt[`GL_AMD_shader_explicit_vertex_parameter`] *Contributors*:: - Matthaeus G. Chajdas, AMD - Qun Lin, AMD diff --git a/appendices/VK_AMD_shader_fragment_mask.txt b/appendices/VK_AMD_shader_fragment_mask.txt index 28e3da689a..bd60726283 100644 --- a/appendices/VK_AMD_shader_fragment_mask.txt +++ b/appendices/VK_AMD_shader_fragment_mask.txt @@ -14,7 +14,7 @@ include::{generated}/meta/{refprefix}VK_AMD_shader_fragment_mask.txt[] - This extension requires {spirv}/AMD/SPV_AMD_shader_fragment_mask.html[`SPV_AMD_shader_fragment_mask`] - This extension provides API support for - https://github.com/KhronosGroup/GLSL/blob/master/extensions/amd/GL_AMD_shader_fragment_mask.txt[`GL_AMD_shader_fragment_mask`] + {GLSLregistry}/amd/GL_AMD_shader_fragment_mask.txt[`GL_AMD_shader_fragment_mask`] *Contributors*:: - Aaron Hagan, AMD - Daniel Rakos, AMD diff --git a/appendices/VK_AMD_shader_image_load_store_lod.txt b/appendices/VK_AMD_shader_image_load_store_lod.txt index 65f4de6864..6026ba1920 100644 --- a/appendices/VK_AMD_shader_image_load_store_lod.txt +++ b/appendices/VK_AMD_shader_image_load_store_lod.txt @@ -12,7 +12,7 @@ include::{generated}/meta/{refprefix}VK_AMD_shader_image_load_store_lod.txt[] - This extension requires {spirv}/AMD/SPV_AMD_shader_image_load_store_lod.html[`SPV_AMD_shader_image_load_store_lod`] - This extension provides API support for - https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_shader_image_load_store_lod.txt[`GL_AMD_shader_image_load_store_lod`] + {GLregistry}/AMD/AMD_shader_image_load_store_lod.txt[`GL_AMD_shader_image_load_store_lod`] *IP Status*:: No known IP claims. *Contributors*:: diff --git a/appendices/VK_AMD_shader_trinary_minmax.txt b/appendices/VK_AMD_shader_trinary_minmax.txt index 11b9fdeb55..50d80f7616 100644 --- a/appendices/VK_AMD_shader_trinary_minmax.txt +++ b/appendices/VK_AMD_shader_trinary_minmax.txt @@ -14,7 +14,7 @@ include::{generated}/meta/{refprefix}VK_AMD_shader_trinary_minmax.txt[] - This extension requires {spirv}/AMD/SPV_AMD_shader_trinary_minmax.html[`SPV_AMD_shader_trinary_minmax`] - This extension provides API support for - https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_shader_trinary_minmax.txt[`GL_AMD_shader_trinary_minmax`] + {GLregistry}/AMD/AMD_shader_trinary_minmax.txt[`GL_AMD_shader_trinary_minmax`] *Contributors*:: - Matthaeus G. Chajdas, AMD - Qun Lin, AMD diff --git a/appendices/VK_AMD_texture_gather_bias_lod.txt b/appendices/VK_AMD_texture_gather_bias_lod.txt index 0f67cde074..22a009ed31 100644 --- a/appendices/VK_AMD_texture_gather_bias_lod.txt +++ b/appendices/VK_AMD_texture_gather_bias_lod.txt @@ -14,7 +14,7 @@ include::{generated}/meta/{refprefix}VK_AMD_texture_gather_bias_lod.txt[] - This extension requires {spirv}/AMD/SPV_AMD_texture_gather_bias_lod.html[`SPV_AMD_texture_gather_bias_lod`] - This extension provides API support for - https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_texture_gather_bias_lod.txt[`GL_AMD_texture_gather_bias_lod`] + {GLregistry}/AMD/AMD_texture_gather_bias_lod.txt[`GL_AMD_texture_gather_bias_lod`] *Contributors*:: - Dominik Witczak, AMD - Daniel Rakos, AMD diff --git a/appendices/VK_EXT_buffer_device_address.txt b/appendices/VK_EXT_buffer_device_address.txt index 4c42b6f177..79d2ffd3ff 100644 --- a/appendices/VK_EXT_buffer_device_address.txt +++ b/appendices/VK_EXT_buffer_device_address.txt @@ -14,9 +14,9 @@ include::{generated}/meta/{refprefix}VK_EXT_buffer_device_address.txt[] - This extension requires {spirv}/EXT/SPV_EXT_physical_storage_buffer.html[`SPV_EXT_physical_storage_buffer`] - This extension provides API support for - https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_buffer_reference.txt[`GLSL_EXT_buffer_reference`] + {GLSLregistry}/ext/GLSL_EXT_buffer_reference.txt[`GLSL_EXT_buffer_reference`] and - https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_buffer_reference_uvec2.txt[`GLSL_EXT_buffer_reference_uvec2`] + {GLSLregistry}/ext/GLSL_EXT_buffer_reference_uvec2.txt[`GLSL_EXT_buffer_reference_uvec2`] *Contributors*:: - Jeff Bolz, NVIDIA - Neil Henning, AMD @@ -29,7 +29,7 @@ include::{generated}/meta/{refprefix}VK_EXT_buffer_device_address.txt[] This extension allows the application to query a 64-bit buffer device address value for a buffer, which can be used to access the buffer memory via the code:PhysicalStorageBufferEXT storage class in the -https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_buffer_reference.txt[`GL_EXT_buffer_reference`] +{GLSLregistry}/ext/GLSL_EXT_buffer_reference.txt[`GL_EXT_buffer_reference`] GLSL extension and {spirv}/EXT/SPV_EXT_physical_storage_buffer.html[`SPV_EXT_physical_storage_buffer`] SPIR-V extension. diff --git a/appendices/VK_EXT_conservative_rasterization.txt b/appendices/VK_EXT_conservative_rasterization.txt index 38f74862ad..89b9666bae 100644 --- a/appendices/VK_EXT_conservative_rasterization.txt +++ b/appendices/VK_EXT_conservative_rasterization.txt @@ -20,7 +20,7 @@ include::{generated}/meta/{refprefix}VK_EXT_conservative_rasterization.txt[] sname:VkPhysicalDeviceConservativeRasterizationPropertiesEXT::pname:conservativeRasterizationPostDepthCoverage feature is used. - This extension provides API support for - https://www.khronos.org/registry/OpenGL/extensions/NV/NV_conservative_raster_underestimation.txt[`GL_NV_conservative_raster_underestimation`] + {GLregistry}/NV/NV_conservative_raster_underestimation.txt[`GL_NV_conservative_raster_underestimation`] if the sname:VkPhysicalDeviceConservativeRasterizationPropertiesEXT::pname:fullyCoveredFragmentShaderInputVariable feature is used. diff --git a/appendices/VK_EXT_descriptor_indexing.txt b/appendices/VK_EXT_descriptor_indexing.txt index b5e3fc40fc..1c7eb2ce1e 100644 --- a/appendices/VK_EXT_descriptor_indexing.txt +++ b/appendices/VK_EXT_descriptor_indexing.txt @@ -13,7 +13,7 @@ include::{generated}/meta/{refprefix}VK_EXT_descriptor_indexing.txt[] - This extension requires {spirv}/EXT/SPV_EXT_descriptor_indexing.html[`SPV_EXT_descriptor_indexing`] - This extension provides API support for - https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GL_EXT_nonuniform_qualifier.txt[`GL_EXT_nonuniform_qualifier`] + {GLSLregistry}/ext/GL_EXT_nonuniform_qualifier.txt[`GL_EXT_nonuniform_qualifier`] *Contributors*:: - Jeff Bolz, NVIDIA - Daniel Rakos, AMD diff --git a/appendices/VK_EXT_fragment_density_map.txt b/appendices/VK_EXT_fragment_density_map.txt index 0a30d534c2..07318488d1 100644 --- a/appendices/VK_EXT_fragment_density_map.txt +++ b/appendices/VK_EXT_fragment_density_map.txt @@ -12,7 +12,7 @@ include::{generated}/meta/{refprefix}VK_EXT_fragment_density_map.txt[] - This extension requires {spirv}/EXT/SPV_EXT_fragment_invocation_density.html[`SPV_EXT_fragment_invocation_density`] - This extension provides API support for - https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_fragment_invocation_density.txt[`GL_EXT_fragment_invocation_density`] + {GLSLregistry}/ext/GLSL_EXT_fragment_invocation_density.txt[`GL_EXT_fragment_invocation_density`] *Contributors*:: - Matthew Netsch, Qualcomm Technologies, Inc. - Robert VanReenen, Qualcomm Technologies, Inc. diff --git a/appendices/VK_EXT_fragment_shader_interlock.txt b/appendices/VK_EXT_fragment_shader_interlock.txt index b2adc6a2af..1ba2be159f 100644 --- a/appendices/VK_EXT_fragment_shader_interlock.txt +++ b/appendices/VK_EXT_fragment_shader_interlock.txt @@ -12,7 +12,7 @@ include::{generated}/meta/{refprefix}VK_EXT_fragment_shader_interlock.txt[] - This extension requires {spirv}/EXT/SPV_EXT_fragment_shader_interlock.html[`SPV_EXT_fragment_shader_interlock`] - This extension provides API support for - https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_fragment_shader_interlock.txt[`GL_ARB_fragment_shader_interlock`] + {GLregistry}/ARB/ARB_fragment_shader_interlock.txt[`GL_ARB_fragment_shader_interlock`] *Contributors*:: - Daniel Koch, NVIDIA - Graeme Leese, Broadcom diff --git a/appendices/VK_EXT_post_depth_coverage.txt b/appendices/VK_EXT_post_depth_coverage.txt index dadd69eb24..8de51ff468 100644 --- a/appendices/VK_EXT_post_depth_coverage.txt +++ b/appendices/VK_EXT_post_depth_coverage.txt @@ -12,9 +12,9 @@ include::{generated}/meta/{refprefix}VK_EXT_post_depth_coverage.txt[] - This extension requires {spirv}/KHR/SPV_KHR_post_depth_coverage.html[`SPV_KHR_post_depth_coverage`] - This extension provides API support for - https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_post_depth_coverage.txt[`GL_ARB_post_depth_coverage`] + {GLregistry}/ARB/ARB_post_depth_coverage.txt[`GL_ARB_post_depth_coverage`] and - https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_post_depth_coverage.txt[`GL_EXT_post_depth_coverage`] + {GLregistry}/EXT/EXT_post_depth_coverage.txt[`GL_EXT_post_depth_coverage`] *Contributors*:: - Jeff Bolz, NVIDIA diff --git a/appendices/VK_EXT_shader_atomic_float.txt b/appendices/VK_EXT_shader_atomic_float.txt index acdb7dd89c..0ed1e73629 100644 --- a/appendices/VK_EXT_shader_atomic_float.txt +++ b/appendices/VK_EXT_shader_atomic_float.txt @@ -14,7 +14,7 @@ include::{generated}/meta/{refprefix}VK_EXT_shader_atomic_float.txt[] - This extension requires {spirv}/EXT/SPV_EXT_shader_atomic_float_add.html[`SPV_EXT_shader_atomic_float_add`] - This extension provides API support for - https://github.com/KhronosGroup/GLSL/tree/master/extensions/ext/GLSL_EXT_shader_atomic_float.txt[`GL_EXT_shader_atomic_float`] + {GLSLregistry}/ext/GLSL_EXT_shader_atomic_float.txt[`GL_EXT_shader_atomic_float`] *Contributors*:: - Vikram Kushwaha, NVIDIA - Jeff Bolz, NVIDIA diff --git a/appendices/VK_EXT_shader_atomic_float2.txt b/appendices/VK_EXT_shader_atomic_float2.txt index 905db95f98..4ec0c4b318 100755 --- a/appendices/VK_EXT_shader_atomic_float2.txt +++ b/appendices/VK_EXT_shader_atomic_float2.txt @@ -17,7 +17,7 @@ include::{generated}/meta/{refprefix}VK_EXT_shader_atomic_float2.txt[] and {spirv}/EXT/SPV_EXT_shader_atomic_float16_add.html[`SPV_EXT_shader_atomic_float16_add`] - This extension provides API support for - https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_shader_atomic_float2.txt[`GLSL_EXT_shader_atomic_float2`] + {GLSLregistry}/ext/GLSL_EXT_shader_atomic_float2.txt[`GLSL_EXT_shader_atomic_float2`] *Contributors*:: - Jason Ekstrand, Intel diff --git a/appendices/VK_EXT_shader_demote_to_helper_invocation.txt b/appendices/VK_EXT_shader_demote_to_helper_invocation.txt index e900c2f13b..b2897e7d9d 100644 --- a/appendices/VK_EXT_shader_demote_to_helper_invocation.txt +++ b/appendices/VK_EXT_shader_demote_to_helper_invocation.txt @@ -14,7 +14,7 @@ include::{generated}/meta/{refprefix}VK_EXT_shader_demote_to_helper_invocation.t - This extension requires {spirv}/EXT/SPV_EXT_demote_to_helper_invocation.html[`SPV_EXT_demote_to_helper_invocation`] - This extension provides API support for - https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_demote_to_helper_invocation.txt[`GL_EXT_demote_to_helper_invocation`] + {GLSLregistry}/ext/GLSL_EXT_demote_to_helper_invocation.txt[`GL_EXT_demote_to_helper_invocation`] *Contributors*:: - Jeff Bolz, NVIDIA diff --git a/appendices/VK_EXT_shader_image_atomic_int64.txt b/appendices/VK_EXT_shader_image_atomic_int64.txt index b7bc960b7d..4953117c97 100644 --- a/appendices/VK_EXT_shader_image_atomic_int64.txt +++ b/appendices/VK_EXT_shader_image_atomic_int64.txt @@ -14,7 +14,7 @@ include::{generated}/meta/{refprefix}VK_EXT_shader_image_atomic_int64.txt[] - This extension requires {spirv}/EXT/SPV_EXT_shader_image_int64.html[`SPV_EXT_shader_image_int64`] - This extension provides API support for - https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_shader_image_int64.txt[`GLSL_EXT_shader_image_int64`] + {GLSLregistry}/ext/GLSL_EXT_shader_image_int64.txt[`GLSL_EXT_shader_image_int64`] *Contributors*:: - Matthaeus Chajdas, AMD - Graham Wihlidal, Epic Games diff --git a/appendices/VK_EXT_shader_stencil_export.txt b/appendices/VK_EXT_shader_stencil_export.txt index 4b45ac453a..162723d33d 100644 --- a/appendices/VK_EXT_shader_stencil_export.txt +++ b/appendices/VK_EXT_shader_stencil_export.txt @@ -14,7 +14,7 @@ include::{generated}/meta/{refprefix}VK_EXT_shader_stencil_export.txt[] - This extension requires {spirv}/EXT/SPV_EXT_shader_stencil_export.html[`SPV_EXT_shader_stencil_export`] - This extension provides API support for - https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_shader_stencil_export.txt[`GL_ARB_shader_stencil_export`] + {GLregistry}/ARB/ARB_shader_stencil_export.txt[`GL_ARB_shader_stencil_export`] *Contributors*:: - Dominik Witczak, AMD - Daniel Rakos, AMD diff --git a/appendices/VK_EXT_shader_subgroup_ballot.txt b/appendices/VK_EXT_shader_subgroup_ballot.txt index 35c3abd1b8..627a33499b 100644 --- a/appendices/VK_EXT_shader_subgroup_ballot.txt +++ b/appendices/VK_EXT_shader_subgroup_ballot.txt @@ -14,7 +14,7 @@ include::{generated}/meta/{refprefix}VK_EXT_shader_subgroup_ballot.txt[] - This extension requires {spirv}/KHR/SPV_KHR_shader_ballot.html[`SPV_KHR_shader_ballot`] - This extension provides API support for - https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_shader_ballot.txt[`GL_ARB_shader_ballot`] + {GLregistry}/ARB/ARB_shader_ballot.txt[`GL_ARB_shader_ballot`] *Contributors*:: - Jeff Bolz, NVIDIA - Neil Henning, Codeplay diff --git a/appendices/VK_EXT_shader_subgroup_vote.txt b/appendices/VK_EXT_shader_subgroup_vote.txt index f55c480a33..a89ca002b5 100644 --- a/appendices/VK_EXT_shader_subgroup_vote.txt +++ b/appendices/VK_EXT_shader_subgroup_vote.txt @@ -14,7 +14,7 @@ include::{generated}/meta/{refprefix}VK_EXT_shader_subgroup_vote.txt[] - This extension requires {spirv}/KHR/SPV_KHR_subgroup_vote.html[`SPV_KHR_subgroup_vote`] - This extension provides API support for - https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_shader_group_vote.txt[`GL_ARB_shader_group_vote`] + {GLregistry}/ARB/ARB_shader_group_vote.txt[`GL_ARB_shader_group_vote`] *Contributors*:: - Neil Henning, Codeplay - Daniel Koch, NVIDIA Corporation diff --git a/appendices/VK_EXT_shader_viewport_index_layer.txt b/appendices/VK_EXT_shader_viewport_index_layer.txt index 3b2a5818ab..52e4eb8a3b 100644 --- a/appendices/VK_EXT_shader_viewport_index_layer.txt +++ b/appendices/VK_EXT_shader_viewport_index_layer.txt @@ -13,11 +13,10 @@ include::{generated}/meta/{refprefix}VK_EXT_shader_viewport_index_layer.txt[] - This extension requires {spirv}/EXT/SPV_EXT_shader_viewport_index_layer.html[`SPV_EXT_shader_viewport_index_layer`] - This extension provides API support for - https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_shader_viewport_layer_array.txt[`GL_ARB_shader_viewport_layer_array`], - https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_vertex_shader_layer.txt[`GL_AMD_vertex_shader_layer`], - https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_vertex_shader_viewport_index.txt[`GL_AMD_vertex_shader_viewport_index`], - and - https://www.khronos.org/registry/OpenGL/extensions/NV/NV_viewport_array2.txt[`GL_NV_viewport_array2`] + {GLregistry}/ARB/ARB_shader_viewport_layer_array.txt[`GL_ARB_shader_viewport_layer_array`], + {GLregistry}/AMD/AMD_vertex_shader_layer.txt[`GL_AMD_vertex_shader_layer`], + {GLregistry}/AMD/AMD_vertex_shader_viewport_index.txt[`GL_AMD_vertex_shader_viewport_index`], + and {GLregistry}/NV/NV_viewport_array2.txt[`GL_NV_viewport_array2`] - This extension requires the pname:multiViewport feature. - This extension interacts with the pname:tessellationShader feature. *Contributors*:: diff --git a/appendices/VK_EXT_subgroup_size_control.txt b/appendices/VK_EXT_subgroup_size_control.txt index dab90f21ad..5d32f25a58 100644 --- a/appendices/VK_EXT_subgroup_size_control.txt +++ b/appendices/VK_EXT_subgroup_size_control.txt @@ -45,18 +45,17 @@ physical device supports and a pipeline create flag to enable that pipeline to vary its subgroup size. If enabled, any code:SubgroupSize decorated variables in the SPIR-V shader modules provided to pipeline creation may: vary between the -<> and -<> subgroup sizes. +<> and <> +subgroup sizes. An implementation is also optionally allowed to support specifying a required subgroup size for a given pipeline stage. -Implementations advertise which <>, and any pipeline of a supported -stage can be passed a -slink:VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT structure to -set the subgroup size for that shader stage of the pipeline. +Implementations advertise which <>, and any pipeline of a supported stage +can be passed a slink:VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT +structure to set the subgroup size for that shader stage of the pipeline. For compute shaders, this requires the developer to query the -<> +<> and ensure that: [latexmath] diff --git a/appendices/VK_HUAWEI_subpass_shading.txt b/appendices/VK_HUAWEI_subpass_shading.txt index 8ca857ec79..63d1f6bfba 100644 --- a/appendices/VK_HUAWEI_subpass_shading.txt +++ b/appendices/VK_HUAWEI_subpass_shading.txt @@ -12,7 +12,7 @@ include::{generated}/meta/{refprefix}VK_HUAWEI_subpass_shading.txt[] - This extension requires {spirv}/HUAWEI/SPV_HUAWEI_subpass_shading.html[`SPV_HUAWEI_subpass_shading`]. - This extension provides API support for - https://github.com/KhronosGroup/GLSL/blob/master/extensions/huawei/GLSL_HUAWEI_subpass_shading.txt[`GL_HUAWEI_subpass_shading`]. + {GLSLregistry}/huawei/GLSL_HUAWEI_subpass_shading.txt[`GL_HUAWEI_subpass_shading`]. *Contributors*:: - Hueilong Wang diff --git a/appendices/VK_INTEL_shader_integer_functions2.txt b/appendices/VK_INTEL_shader_integer_functions2.txt index 92f4a7f1e5..9244ee2ae0 100644 --- a/appendices/VK_INTEL_shader_integer_functions2.txt +++ b/appendices/VK_INTEL_shader_integer_functions2.txt @@ -14,7 +14,7 @@ include::{generated}/meta/{refprefix}VK_INTEL_shader_integer_functions2.txt[] - This extension requires {spirv}/INTEL/SPV_INTEL_shader_integer_functions2.html[`SPV_INTEL_shader_integer_functions2`]. - This extension provides API support for - https://www.khronos.org/registry/OpenGL/extensions/INTEL/INTEL_shader_integer_functions2.txt[`GL_INTEL_shader_integer_functions2`]. + {GLregistry}/INTEL/INTEL_shader_integer_functions2.txt[`GL_INTEL_shader_integer_functions2`]. *Contributors*:: - Ian Romanick, Intel - Ben Ashbaugh, Intel diff --git a/appendices/VK_KHR_16bit_storage.txt b/appendices/VK_KHR_16bit_storage.txt index bce8665e4f..43d60617eb 100644 --- a/appendices/VK_KHR_16bit_storage.txt +++ b/appendices/VK_KHR_16bit_storage.txt @@ -15,7 +15,7 @@ include::{generated}/meta/{refprefix}VK_KHR_16bit_storage.txt[] - This extension requires {spirv}/KHR/SPV_KHR_16bit_storage.html[`SPV_KHR_16bit_storage`] - This extension provides API support for - https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GL_EXT_shader_16bit_storage.txt[`GL_EXT_shader_16bit_storage`] + {GLSLregistry}/ext/GL_EXT_shader_16bit_storage.txt[`GL_EXT_shader_16bit_storage`] *Contributors*:: - Alexander Galazin, ARM - Jan-Harald Fredriksen, ARM diff --git a/appendices/VK_KHR_8bit_storage.txt b/appendices/VK_KHR_8bit_storage.txt index 44f84d36d6..3145759355 100644 --- a/appendices/VK_KHR_8bit_storage.txt +++ b/appendices/VK_KHR_8bit_storage.txt @@ -13,7 +13,7 @@ include::{generated}/meta/{refprefix}VK_KHR_8bit_storage.txt[] - This extension requires {spirv}/KHR/SPV_KHR_8bit_storage.html[`SPV_KHR_8bit_storage`] - This extension provides API support for - https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GL_EXT_shader_16bit_storage.txt[`GL_EXT_shader_16bit_storage`] + {GLSLregistry}/ext/GL_EXT_shader_16bit_storage.txt[`GL_EXT_shader_16bit_storage`] *IP Status*:: No known IP claims. *Contributors*:: diff --git a/appendices/VK_KHR_buffer_device_address.txt b/appendices/VK_KHR_buffer_device_address.txt index 6698fd17c3..0c78c594c8 100644 --- a/appendices/VK_KHR_buffer_device_address.txt +++ b/appendices/VK_KHR_buffer_device_address.txt @@ -15,11 +15,11 @@ include::{generated}/meta/{refprefix}VK_KHR_buffer_device_address.txt[] - This extension requires {spirv}/KHR/SPV_KHR_physical_storage_buffer.html[`SPV_KHR_physical_storage_buffer`] - This extension provides API support for - https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_buffer_reference.txt[`GL_EXT_buffer_reference`] + {GLSLregistry}/ext/GLSL_EXT_buffer_reference.txt[`GL_EXT_buffer_reference`] and - https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_buffer_reference2.txt[`GL_EXT_buffer_reference2`] + {GLSLregistry}/ext/GLSL_EXT_buffer_reference2.txt[`GL_EXT_buffer_reference2`] and - https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_buffer_reference_uvec2.txt[`GL_EXT_buffer_reference_uvec2`] + {GLSLregistry}/ext/GLSL_EXT_buffer_reference_uvec2.txt[`GL_EXT_buffer_reference_uvec2`] *Contributors*:: - Jeff Bolz, NVIDIA - Neil Henning, AMD @@ -33,7 +33,7 @@ include::{generated}/meta/{refprefix}VK_KHR_buffer_device_address.txt[] This extension allows the application to query a 64-bit buffer device address value for a buffer, which can be used to access the buffer memory via the code:PhysicalStorageBuffer storage class in the -https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_buffer_reference.txt[`GL_EXT_buffer_reference`] +{GLSLregistry}/ext/GLSL_EXT_buffer_reference.txt[`GL_EXT_buffer_reference`] GLSL extension and {spirv}/KHR/SPV_KHR_physical_storage_buffer.html[`SPV_KHR_physical_storage_buffer`] SPIR-V extension. @@ -66,12 +66,12 @@ as a run-time constant (e.g. specialization constant) that avoids impacting other descriptor limits. There are examples of usage in the -https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_buffer_reference.txt[`GL_EXT_buffer_reference`] +{GLSLregistry}/ext/GLSL_EXT_buffer_reference.txt[`GL_EXT_buffer_reference`] spec for how to use this in a high-level shading language such as GLSL. The -https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_buffer_reference2.txt[`GL_EXT_buffer_reference2`] +{GLSLregistry}/ext/GLSL_EXT_buffer_reference2.txt[`GL_EXT_buffer_reference2`] and -https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_buffer_reference_uvec2.txt[`GL_EXT_buffer_reference_uvec2`] +{GLSLregistry}/ext/GLSL_EXT_buffer_reference_uvec2.txt[`GL_EXT_buffer_reference_uvec2`] extensions were also added to help cover a few additional edge cases. === Promotion to Vulkan 1.2 @@ -109,12 +109,12 @@ device address at startup and pushing that into shaders as a run-time constant (e.g. specialization constant). There are examples of usage in the -https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_buffer_reference.txt[`GL_EXT_buffer_reference`] +{GLSLregistry}/ext/GLSL_EXT_buffer_reference.txt[`GL_EXT_buffer_reference`] spec for how to use this in a high-level shading language such as GLSL. The -https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_buffer_reference2.txt[`GL_EXT_buffer_reference2`] +{GLSLregistry}/ext/GLSL_EXT_buffer_reference2.txt[`GL_EXT_buffer_reference2`] and -https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_buffer_reference_uvec2.txt[`GL_EXT_buffer_reference_uvec2`] +{GLSLregistry}/ext/GLSL_EXT_buffer_reference_uvec2.txt[`GL_EXT_buffer_reference_uvec2`] extensions were added to help cover a few edge cases missed by the original `GL_EXT_buffer_reference`. diff --git a/appendices/VK_KHR_fragment_shading_rate.txt b/appendices/VK_KHR_fragment_shading_rate.txt index b2e0a9d4a0..06787b349b 100644 --- a/appendices/VK_KHR_fragment_shading_rate.txt +++ b/appendices/VK_KHR_fragment_shading_rate.txt @@ -12,7 +12,7 @@ include::{generated}/meta/{refprefix}VK_KHR_fragment_shading_rate.txt[] - This extension requires {spirv}/KHR/SPV_KHR_fragment_shading_rate.html[`SPV_KHR_fragment_shading_rate`]. - This extension provides API support for - https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_fragment_shading_rate.txt[`GL_EXT_fragment_shading_rate`] + {GLSLregistry}/ext/GLSL_EXT_fragment_shading_rate.txt[`GL_EXT_fragment_shading_rate`] *Contributors*:: - Tobias Hector, AMD - Guennadi Riguer, AMD diff --git a/appendices/VK_KHR_ray_query.txt b/appendices/VK_KHR_ray_query.txt index f5d9ad891a..141c1460a6 100644 --- a/appendices/VK_KHR_ray_query.txt +++ b/appendices/VK_KHR_ray_query.txt @@ -12,7 +12,7 @@ include::{generated}/meta/{refprefix}VK_KHR_ray_query.txt[] - This extension requires https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_ray_query.html[`SPV_KHR_ray_query`] - This extension provides API support for - https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_ray_query.txt[`GLSL_EXT_ray_query`] + {GLSLregistry}/ext/GLSL_EXT_ray_query.txt[`GLSL_EXT_ray_query`] *Contributors*:: - Matthäus Chajdas, AMD - Greg Grebe, AMD diff --git a/appendices/VK_KHR_ray_tracing_pipeline.txt b/appendices/VK_KHR_ray_tracing_pipeline.txt index 45f04324d8..e727e64d26 100644 --- a/appendices/VK_KHR_ray_tracing_pipeline.txt +++ b/appendices/VK_KHR_ray_tracing_pipeline.txt @@ -12,7 +12,7 @@ include::{generated}/meta/{refprefix}VK_KHR_ray_tracing_pipeline.txt[] - This extension requires https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_ray_tracing.html[`SPV_KHR_ray_tracing`] - This extension provides API support for - https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_ray_tracing.txt[`GLSL_EXT_ray_tracing`] + {GLSLregistry}/ext/GLSL_EXT_ray_tracing.txt[`GLSL_EXT_ray_tracing`] - This extension interacts with <> and `apiext:VK_KHR_vulkan_memory_model`, adding the <> relation of invocations, <> on <> via the -https://github.com/KhronosGroup/GLSL/blob/master/extensions/nv/GL_NV_shader_subgroup_partitioned.txt[`GL_NV_shader_subgroup_partitioned`] +{GLSLregistry}/nv/GL_NV_shader_subgroup_partitioned.txt[`GL_NV_shader_subgroup_partitioned`] GLSL extension and {spirv}/NV/SPV_NV_shader_subgroup_partitioned.html[`SPV_NV_shader_subgroup_partitioned`] SPIR-V extension. diff --git a/appendices/VK_NV_shading_rate_image.txt b/appendices/VK_NV_shading_rate_image.txt index dceb828f0f..fdee02c96d 100644 --- a/appendices/VK_NV_shading_rate_image.txt +++ b/appendices/VK_NV_shading_rate_image.txt @@ -12,7 +12,7 @@ include::{generated}/meta/{refprefix}VK_NV_shading_rate_image.txt[] - This extension requires {spirv}/NV/SPV_NV_shading_rate.html[`SPV_NV_shading_rate`] - This extension provides API support for - https://github.com/KhronosGroup/GLSL/blob/master/extensions/nv/GLSL_NV_shading_rate_image.txt[`GL_NV_shading_rate_image`] + {GLSLregistry}/nv/GLSL_NV_shading_rate_image.txt[`GL_NV_shading_rate_image`] *Contributors*:: - Pat Brown, NVIDIA - Carsten Rohde, NVIDIA diff --git a/appendices/VK_NV_viewport_array2.txt b/appendices/VK_NV_viewport_array2.txt index 1f74abfcdb..9f4d6dcff2 100644 --- a/appendices/VK_NV_viewport_array2.txt +++ b/appendices/VK_NV_viewport_array2.txt @@ -12,7 +12,7 @@ include::{generated}/meta/{refprefix}VK_NV_viewport_array2.txt[] - This extension requires {spirv}/NV/SPV_NV_viewport_array2.html[`SPV_NV_viewport_array2`] - This extension provides API support for - https://www.khronos.org/registry/OpenGL/extensions/NV/NV_viewport_array2.txt[`GL_NV_viewport_array2`] + {GLregistry}/NV/NV_viewport_array2.txt[`GL_NV_viewport_array2`] - This extension requires the pname:geometryShader and pname:multiViewport features. - This extension interacts with the pname:tessellationShader feature. diff --git a/appendices/credits.txt b/appendices/credits.txt index 17d41bbb94..caa3c763d6 100644 --- a/appendices/credits.txt +++ b/appendices/credits.txt @@ -288,6 +288,6 @@ Administrative support for Vulkan 1.0 was provided by Andrew Riegel, Elizabeth Riegel, Glenn Fredericks, Kathleen Mattson and Michelle Clark of Gold Standard Group. -Technical support was provided by James Riordon, webmaster of Khronos.org -and OpenGL.org. +Technical support was provided by James Riordon, site administration of +Khronos.org and OpenGL.org. diff --git a/appendices/spirvenv.txt b/appendices/spirvenv.txt index bb0b8cc917..0434a274d4 100644 --- a/appendices/spirvenv.txt +++ b/appendices/spirvenv.txt @@ -508,6 +508,11 @@ endif::VK_VERSION_1_1[] code:OpBitFieldInsert, code:OpBitFieldSExtract, or code:OpBitFieldUExtract instruction must: be a 32-bit integer scalar or a vector of 32-bit integers + * [[VUID-{refpage}-DescriptorSet-06491]] + If a variable is decorated by code:DescriptorSet or code:Binding, the + storage class must: correspond to an entry in + <> **** -- diff --git a/chapters/commonvalidity/pipeline_stage_common.txt b/chapters/commonvalidity/pipeline_stage_common.txt index 0982cd8180..9644e1a0a9 100644 --- a/chapters/commonvalidity/pipeline_stage_common.txt +++ b/chapters/commonvalidity/pipeline_stage_common.txt @@ -49,4 +49,14 @@ ifdef::VK_NV_shading_rate_image[] enabled, pname:pipelineStage must: not be ename:VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV endif::VK_NV_shading_rate_image[] +ifdef::VK_KHR_synchronization2[] + * [[VUID-{refpage}-synchronization2-06489]] + If the <> feature is + not enabled, pname:pipelineStage must: not be + ename:VK_PIPELINE_STAGE_NONE_KHR +endif::VK_KHR_synchronization2[] +ifndef::VK_KHR_synchronization2[] + * [[VUID-{refpage}-pipelineStage-06490]] + pname:pipelineStage must: not be ename:VK_PIPELINE_STAGE_NONE_KHR +endif::VK_KHR_synchronization2[] // Common Valid Usage diff --git a/chapters/debugging.txt b/chapters/debugging.txt index 037e975f1a..edad24175d 100644 --- a/chapters/debugging.txt +++ b/chapters/debugging.txt @@ -175,8 +175,9 @@ include::{generated}/validity/structs/VkPhysicalDeviceToolPropertiesEXT.txt[] [open,refpage='VkToolPurposeFlagBitsEXT',desc='Bitmask specifying the purposes of an active tool',type='enums'] -- -Bits which can: be set in slink:VkDeviceQueueCreateInfo::pname:purposes -specifying the purposes of an active tool are: +Bits which can: be set in +slink:VkPhysicalDeviceToolPropertiesEXT::pname:purposes specifying the +purposes of an active tool are: include::{generated}/api/enums/VkToolPurposeFlagBitsEXT.txt[] diff --git a/chapters/interfaces.txt b/chapters/interfaces.txt index 312b49f6ad..42eb943c4c 100644 --- a/chapters/interfaces.txt +++ b/chapters/interfaces.txt @@ -3770,8 +3770,8 @@ If the pipeline was created with the ename:VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT flag set, the code:SubgroupSize decorated variable will contain the subgroup size for each subgroup that gets dispatched. -This value must: be between <> and -<> and must: be uniform with +This value must: be between <> and +<> and must: be uniform with <>. The value may: vary across a single draw call, and for fragment shaders may: vary across a single primitive. diff --git a/chapters/limits.txt b/chapters/limits.txt index 85248f806a..a928a34cad 100644 --- a/chapters/limits.txt +++ b/chapters/limits.txt @@ -590,10 +590,12 @@ range. pname:offset bytes from the returned pointer will always produce an integer multiple of this limit. See <>. + The value must: be a power of two. * [[limits-minTexelBufferOffsetAlignment]] pname:minTexelBufferOffsetAlignment is the minimum required: alignment, in bytes, for the pname:offset member of the slink:VkBufferViewCreateInfo structure for texel buffers. + The value must: be a power of two. ifdef::VK_EXT_texel_buffer_alignment[] If <> is enabled, this limit is equivalent to the maximum of the @@ -621,6 +623,7 @@ endif::VK_EXT_texel_buffer_alignment[] pname:offset must: be an integer multiple of this limit. Similarly, dynamic offsets for uniform buffers must: be multiples of this limit. + The value must: be a power of two. * [[limits-minStorageBufferOffsetAlignment]] pname:minStorageBufferOffsetAlignment is the minimum required: alignment, in bytes, for the pname:offset member of the @@ -630,6 +633,7 @@ endif::VK_EXT_texel_buffer_alignment[] pname:offset must: be an integer multiple of this limit. Similarly, dynamic offsets for storage buffers must: be multiples of this limit. + The value must: be a power of two. * [[limits-minTexelOffset]] pname:minTexelOffset is the minimum offset value for the code:ConstOffset image operand of any of the code:OpImageSample* or code:OpImageFetch* image instructions. @@ -810,6 +814,7 @@ ifdef::VK_KHR_copy_commands2[] endif::VK_KHR_copy_commands2[] The per texel alignment requirements are enforced, but applications should: use the optimal alignment for optimal performance and power use. + The value must: be a power of two. * [[limits-optimalBufferCopyRowPitchAlignment]] pname:optimalBufferCopyRowPitchAlignment is the optimal buffer row pitch alignment in bytes for @@ -824,9 +829,11 @@ endif::VK_KHR_copy_commands2[] coordinate in adjacent rows (Y coordinates differ by one). The per texel alignment requirements are enforced, but applications should: use the optimal alignment for optimal performance and power use. + The value must: be a power of two. * [[limits-nonCoherentAtomSize]] pname:nonCoherentAtomSize is the size and alignment in bytes that bounds concurrent access to <>. + The value must: be a power of two. 1:: For all bitmasks of elink:VkSampleCountFlagBits, the sample count limits @@ -1351,8 +1358,8 @@ include::{generated}/api/structs/VkPhysicalDeviceSubgroupSizeControlPropertiesEX * pname:sType is the type of this structure. * pname:pNext is `NULL` or a pointer to a structure extending this structure. - * [[limits-min-subgroup-size]] pname:minSubgroupSize is the minimum - subgroup size supported by this device. + * [[limits-minSubgroupSize]] pname:minSubgroupSize is the minimum subgroup + size supported by this device. pname:minSubgroupSize is at least one if any of the physical device's queues support ename:VK_QUEUE_GRAPHICS_BIT or ename:VK_QUEUE_COMPUTE_BIT. @@ -1360,8 +1367,8 @@ include::{generated}/api/structs/VkPhysicalDeviceSubgroupSizeControlPropertiesEX pname:minSubgroupSize is less than or equal to pname:maxSubgroupSize. pname:minSubgroupSize is less than or equal to <>. - * [[limits-max-subgroup-size]] pname:maxSubgroupSize is the maximum - subgroup size supported by this device. + * [[limits-maxSubgroupSize]] pname:maxSubgroupSize is the maximum subgroup + size supported by this device. pname:maxSubgroupSize is at least one if any of the physical device's queues support ename:VK_QUEUE_GRAPHICS_BIT or ename:VK_QUEUE_COMPUTE_BIT. @@ -1369,12 +1376,12 @@ include::{generated}/api/structs/VkPhysicalDeviceSubgroupSizeControlPropertiesEX pname:maxSubgroupSize is greater than or equal to pname:minSubgroupSize. pname:maxSubgroupSize is greater than or equal to <>. - * [[limits-max-subgroups-per-workgroup]] + * [[limits-maxComputeWorkgroupSubgroups]] pname:maxComputeWorkgroupSubgroups is the maximum number of subgroups supported by the implementation within a workgroup. - * [[limits-required-subgroup-size-stages]] - pname:requiredSubgroupSizeStages is a bitfield of what shader stages - support having a required subgroup size specified. + * [[limits-requiredSubgroupSizeStages]] pname:requiredSubgroupSizeStages + is a bitfield of what shader stages support having a required subgroup + size specified. :refpage: VkPhysicalDeviceSubgroupSizeControlPropertiesEXT include::{chapters}/limits.txt[tag=limits_desc] @@ -2067,12 +2074,12 @@ include::{generated}/api/structs/VkPhysicalDeviceFragmentDensityMapPropertiesEXT * pname:sType is the type of this structure. * pname:pNext is `NULL` or a pointer to a structure extending this structure. - * [[limits-minfragmentdensitytexelsize]] pname:minFragmentDensityTexelSize + * [[limits-minFragmentDensityTexelSize]] pname:minFragmentDensityTexelSize is the minimum <>. - * [[limits-maxfragmentdensitytexelsize]] pname:maxFragmentDensityTexelSize + * [[limits-maxFragmentDensityTexelSize]] pname:maxFragmentDensityTexelSize is the maximum fragment density texel size. - * [[limits-fragmentdensityinvocations]] pname:fragmentDensityInvocations + * [[limits-fragmentDensityInvocations]] pname:fragmentDensityInvocations specifies whether the implementation may: invoke additional fragment shader invocations for each covered sample. @@ -2294,15 +2301,15 @@ include::{generated}/api/structs/VkPhysicalDeviceShadingRateImagePropertiesNV.tx * pname:sType is the type of this structure. * pname:pNext is `NULL` or a pointer to a structure extending this structure. - * [[limits-shading-rate-texel-size]] pname:shadingRateTexelSize indicates - the width and height of the portion of the framebuffer corresponding to - each texel in the shading rate image. - * [[limits-shading-rate-palette-size]] pname:shadingRatePaletteSize - indicates the maximum number of palette entries supported for the - shading rate image. - * [[limits-shading-rate-max-coarse-samples]] - pname:shadingRateMaxCoarseSamples specifies the maximum number of - coverage samples supported in a single fragment. + * [[limits-shadingRateTexelSize]] pname:shadingRateTexelSize indicates the + width and height of the portion of the framebuffer corresponding to each + texel in the shading rate image. + * [[limits-shadingRatePaletteSize]] pname:shadingRatePaletteSize indicates + the maximum number of palette entries supported for the shading rate + image. + * [[limits-shadingRateMaxCoarseSamples]] pname:shadingRateMaxCoarseSamples + specifies the maximum number of coverage samples supported in a single + fragment. If the product of the fragment size derived from the base shading rate and the number of coverage samples per pixel exceeds this limit, the final shading rate will be adjusted so that its product does not exceed @@ -2487,6 +2494,7 @@ include::{generated}/api/structs/VkPhysicalDeviceAccelerationStructureProperties pname:minAccelerationStructureScratchOffsetAlignment is the minimum required: alignment, in bytes, for scratch data passed in to an acceleration structure build command. + The value must: be a power of two. Due to the fact that the geometry, instance, and primitive counts are specified at acceleration structure creation as 32-bit values, @@ -2532,6 +2540,7 @@ include::{generated}/api/structs/VkPhysicalDeviceRayTracingPipelinePropertiesKHR flink:vkCmdTraceRaysIndirectKHR or flink:vkCmdTraceRaysKHR command. * pname:shaderGroupHandleAlignment is the required: alignment in bytes for each shader binding table entry. + The value must: be a power of two. * pname:maxRayHitAttributeSize is the maximum size in bytes for a ray attribute structure @@ -2610,17 +2619,21 @@ include::{generated}/api/structs/VkPhysicalDeviceTexelBufferAlignmentPropertiesE * [[limits-storageTexelBufferOffsetAlignmentBytes]] pname:storageTexelBufferOffsetAlignmentBytes is a byte alignment that is sufficient for a storage texel buffer of any format. + The value must: be a power of two. * [[limits-storageTexelBufferOffsetSingleTexelAlignment]] pname:storageTexelBufferOffsetSingleTexelAlignment indicates whether single texel alignment is sufficient for a storage texel buffer of any format. + The value must: be a power of two. * [[limits-uniformTexelBufferOffsetAlignmentBytes]] pname:uniformTexelBufferOffsetAlignmentBytes is a byte alignment that is sufficient for a uniform texel buffer of any format. + The value must: be a power of two. * [[limits-uniformTexelBufferOffsetSingleTexelAlignment]] pname:uniformTexelBufferOffsetSingleTexelAlignment indicates whether single texel alignment is sufficient for a uniform texel buffer of any format. + The value must: be a power of two. :refpage: VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT include::{chapters}/limits.txt[tag=limits_desc] @@ -2716,13 +2729,13 @@ include::{generated}/api/structs/VkPhysicalDeviceRobustness2PropertiesEXT.txt[] the range of a storage buffer descriptor is rounded up to when used for bounds-checking when <> is enabled. - This value is either 1 or 4. + This value must: be either 1 or 4. * [[limits-robustUniformBufferAccessSizeAlignment]] pname:robustUniformBufferAccessSizeAlignment is the number of bytes that the range of a uniform buffer descriptor is rounded up to when used for bounds-checking when <> is enabled. - This value is a power of two in the range [1, 256]. + This value must: be a power of two in the range [1, 256]. :refpage: VkPhysicalDeviceRobustness2PropertiesEXT include::{chapters}/limits.txt[tag=limits_desc] @@ -2787,6 +2800,7 @@ include::{generated}/api/structs/VkPhysicalDevicePortabilitySubsetPropertiesKHR. alignment for vertex input strides. slink:VkVertexInputBindingDescription::pname:stride must: be a multiple of, and at least as large as, this value. + The value must: be a power of two. :refpage: VkPhysicalDevicePortabilitySubsetPropertiesKHR include::{chapters}/limits.txt[tag=limits_desc] diff --git a/chapters/memory.txt b/chapters/memory.txt index 0817d84714..15ba95f992 100644 --- a/chapters/memory.txt +++ b/chapters/memory.txt @@ -2634,7 +2634,7 @@ sname:VkAndroidHardwareBufferFormatPropertiesANDROID are only suggestions. Applications should: treat these values as sensible defaults to use in the absence of more reliable information obtained through some other means. If the underlying physical device is also usable via OpenGL ES with the -https://www.khronos.org/registry/OpenGL/extensions/OES/OES_EGL_image_external.txt[`GL_OES_EGL_image_external`] +{GLregistry}/OES/OES_EGL_image_external.txt[`GL_OES_EGL_image_external`] extension, the implementation should: suggest values that will produce similar sampled values as would be obtained by sampling the same external image via code:samplerExternalOES in OpenGL ES using equivalent sampler @@ -2644,7 +2644,7 @@ parameters. .Note ==== Since -https://www.khronos.org/registry/OpenGL/extensions/OES/OES_EGL_image_external.txt[`GL_OES_EGL_image_external`] +{GLregistry}/OES/OES_EGL_image_external.txt[`GL_OES_EGL_image_external`] does not require the same sampling and conversion calculations as Vulkan does, achieving identical results between APIs may: not be possible on some implementations. diff --git a/chapters/pipelines.txt b/chapters/pipelines.txt index a7745a60d6..48db5c2406 100644 --- a/chapters/pipelines.txt +++ b/chapters/pipelines.txt @@ -444,8 +444,7 @@ ifdef::VK_EXT_subgroup_size_control[] structure is included in the pname:pNext chain, the <> feature must: be enabled, and pname:stage must: be a valid bit specified in - <> + <> * [[VUID-VkPipelineShaderStageCreateInfo-pNext-02756]] If a slink:VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT structure is included in the pname:pNext chain and pname:stage is @@ -453,7 +452,7 @@ ifdef::VK_EXT_subgroup_size_control[] shader must: be less than or equal to the product of slink:VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT::pname:requiredSubgroupSize and - <> + <> * [[VUID-VkPipelineShaderStageCreateInfo-pNext-02757]] If a slink:VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT structure is included in the pname:pNext chain, and pname:flags has the @@ -466,8 +465,7 @@ ifdef::VK_EXT_subgroup_size_control[] ename:VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT and ename:VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT flags set, the local workgroup size in the X dimension of the pipeline - must: be a multiple of - <> + must: be a multiple of <> * [[VUID-VkPipelineShaderStageCreateInfo-flags-02759]] If pname:flags has the ename:VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT @@ -520,8 +518,8 @@ ifdef::VK_EXT_subgroup_size_control[] ==== If ename:VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT and ename:VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT are -specified and <> does not -equal <> and no +specified and <> does not +equal <> and no <> is specified, then the only way to guarantee that the 'X' dimension of the local workgroup size is a multiple of <> @@ -607,10 +605,10 @@ include::{generated}/api/structs/VkPipelineShaderStageRequiredSubgroupSizeCreate pname:requiredSubgroupSize must: be a power-of-two integer * [[VUID-VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT-requiredSubgroupSize-02761]] pname:requiredSubgroupSize must: be greater or equal to - <> + <> * [[VUID-VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT-requiredSubgroupSize-02762]] pname:requiredSubgroupSize must: be less than or equal to - <> + <> **** @@ -1999,21 +1997,45 @@ ifdef::VK_ARM_rasterization_order_attachment_access[] ename:VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM or ename:VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM - * [[VUID-VkGraphicsPipelineCreateInfo-flags-06467]] - If the pname:flags member of slink:VkPipelineColorBlendStateCreateInfo - includes +ifdef::VK_KHR_dynamic_rendering[] + * [[VUID-VkGraphicsPipelineCreateInfo-flags-06482]] + If the pipeline is being created with + <> and the pname:flags member of + slink:VkPipelineColorBlendStateCreateInfo includes + ename:VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM, + pname:renderpass must: not be dlink:VK_NULL_HANDLE + * [[VUID-VkGraphicsPipelineCreateInfo-flags-06483]] + If the pipeline is being created with + <> and the pname:flags member of + slink:VkPipelineDepthStencilStateCreateInfo includes + ename:VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM + or + ename:VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM, + pname:renderpass must: not be dlink:VK_NULL_HANDLE +endif::VK_KHR_dynamic_rendering[] + * [[VUID-VkGraphicsPipelineCreateInfo-flags-06484]] + If the pipeline is being created with + <> and the pname:flags member of + slink:VkPipelineColorBlendStateCreateInfo includes ename:VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM pname:subpass must: have been created with ename:VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM - * [[VUID-VkGraphicsPipelineCreateInfo-flags-06468]] - If the pname:flags member of slink:VkPipelineDepthStencilStateCreateInfo - includes + * [[VUID-VkGraphicsPipelineCreateInfo-flags-06485]] + If the pipeline is being created with + <> and the pname:flags member of + slink:VkPipelineDepthStencilStateCreateInfo includes ename:VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM, pname:subpass must: have been created with ename:VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM - * [[VUID-VkGraphicsPipelineCreateInfo-flags-06469]] - If the pname:flags member of slink:VkPipelineDepthStencilStateCreateInfo - includes + * [[VUID-VkGraphicsPipelineCreateInfo-flags-06486]] + If the pipeline is being created with + <> and the pname:flags member of + slink:VkPipelineDepthStencilStateCreateInfo includes ename:VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM, pname:subpass must: have been created with ename:VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM diff --git a/chapters/primsrast.txt b/chapters/primsrast.txt index 7b07287295..bc8e8948b4 100644 --- a/chapters/primsrast.txt +++ b/chapters/primsrast.txt @@ -1692,7 +1692,7 @@ the lookup will use texel coordinates (_u_,_v_) where latexmath:[u = \left\lfloor \frac{x}{twidth} \right\rfloor], latexmath:[v = \left\lfloor \frac{y}{theight} \right\rfloor], and latexmath:[twidth] and latexmath:[theight] are the width and height of the implementation-dependent -<>. +<>. If the shading rate image view has a type of ename:VK_IMAGE_VIEW_TYPE_2D_ARRAY, the lookup will use texel coordinates (_u_,_v_) to extract a texel from the layer _l_, where _l_ is the layer of @@ -1715,8 +1715,8 @@ A shading rate index is mapped to a base shading rate using a lookup table called the shading rate image palette. There is a separate palette for each viewport. The number of entries in each palette is given by the -implementation-dependent <>. +implementation-dependent <>. [open,refpage='vkCmdSetViewportShadingRatePaletteNV',desc='Set shading rate image palettes dynamically for a command buffer',type='protos'] -- @@ -1833,8 +1833,7 @@ final shading rate. First, if the base shading rate uses multiple pixels for each fragment, the implementation may: reduce the fragment area to ensure that the total number of coverage samples for all pixels in a fragment does not exceed -<>. +<>. If <> is active in the current pipeline and would result in processing _n_ (_n_ > 1) unique samples per diff --git a/chapters/renderpass.txt b/chapters/renderpass.txt index 7f3d807485..f9d1489993 100644 --- a/chapters/renderpass.txt +++ b/chapters/renderpass.txt @@ -780,8 +780,8 @@ include::{generated}/api/structs/VkRenderingFragmentDensityMapAttachmentInfoEXT. This structure can be included in the pname:pNext chain of slink:VkRenderingInfoKHR to define a fragment density map. -If pname:imageView is dlink:VK_NULL_HANDLE, or if this structure is not -specified, pname:imageView is dlink:VK_NULL_HANDLE. +If this structure is not included in the pname:pNext chain, pname:imageView +is treated as dlink:VK_NULL_HANDLE. .Valid Usage **** @@ -1608,7 +1608,8 @@ attachments on multiple uses via ename:VK_ATTACHMENT_LOAD_OP_CLEAR. ename:VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL or ename:VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL ifdef::VK_VERSION_1_1,VK_KHR_maintenance2[] - * If pname:format is a color format, pname:initialLayout must: not be + * [[VUID-VkAttachmentDescription-format-06487]] + If pname:format is a color format, pname:initialLayout must: not be ename:VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL or ename:VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL endif::VK_VERSION_1_1,VK_KHR_maintenance2[] @@ -1620,7 +1621,8 @@ endif::VK_VERSION_1_1,VK_KHR_maintenance2[] ename:VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL or ename:VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL ifdef::VK_VERSION_1_1,VK_KHR_maintenance2[] - * If pname:format is a color format, pname:finalLayout must: not be + * [[VUID-VkAttachmentDescription-format-06488]] + If pname:format is a color format, pname:finalLayout must: not be ename:VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL or ename:VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL endif::VK_VERSION_1_1,VK_KHR_maintenance2[] diff --git a/chapters/resources.txt b/chapters/resources.txt index cfce64088d..0aebfc00a2 100755 --- a/chapters/resources.txt +++ b/chapters/resources.txt @@ -4122,6 +4122,10 @@ purposes such as identifying a subresource, are: include::{generated}/api/enums/VkImageAspectFlagBits.txt[] +ifdef::VK_KHR_maintenance4[] + * ename:VK_IMAGE_ASPECT_NONE_KHR specifies no image aspect, or the image + aspect is not applicable. +endif::VK_KHR_maintenance4[] * ename:VK_IMAGE_ASPECT_COLOR_BIT specifies the color aspect. * ename:VK_IMAGE_ASPECT_DEPTH_BIT specifies the depth aspect. * ename:VK_IMAGE_ASPECT_STENCIL_BIT specifies the stencil aspect. @@ -6294,12 +6298,12 @@ endif::VK_EXT_image_drm_format_modifier[] slink:VkImageSwapchainCreateInfoKHR structure * [[VUID-VkDeviceImageMemoryRequirementsKHR-pCreateInfo-06417]] If pname:pCreateInfo::pname:flags has ename:VK_IMAGE_CREATE_DISJOINT_BIT - set then pname:planAspect must: not be zero + set then pname:planeAspect must: not be ename:VK_IMAGE_ASPECT_NONE_KHR ifdef::VK_EXT_image_drm_format_modifier[] * [[VUID-VkDeviceImageMemoryRequirementsKHR-pCreateInfo-06418]] If pname:pCreateInfo::pname:flags has - ename:VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT set then pname:planAspect - must: not be zero + ename:VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT set then pname:planeAspect + must: not be ename:VK_IMAGE_ASPECT_NONE_KHR endif::VK_EXT_image_drm_format_modifier[] * [[VUID-VkDeviceImageMemoryRequirementsKHR-pCreateInfo-06419]] If pname:pCreateInfo::pname:flags has ename:VK_IMAGE_CREATE_DISJOINT_BIT diff --git a/chapters/synchronization.txt b/chapters/synchronization.txt index 7ae3bbdbd4..994589c17b 100755 --- a/chapters/synchronization.txt +++ b/chapters/synchronization.txt @@ -766,6 +766,9 @@ and <>. [cols="60%,40%",options="header"] |==== |Pipeline stage flag | Required queue capability flag +ifdef::VK_KHR_synchronization2[] +|ename:VK_PIPELINE_STAGE_NONE_KHR | None required +endif::VK_KHR_synchronization2[] |ename:VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT | None required |ename:VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT | ename:VK_QUEUE_GRAPHICS_BIT or ename:VK_QUEUE_COMPUTE_BIT |ename:VK_PIPELINE_STAGE_VERTEX_INPUT_BIT | ename:VK_QUEUE_GRAPHICS_BIT diff --git a/chapters/video_decode_h264_extensions.txt b/chapters/video_decode_h264_extensions.txt index 7adb51d6ad..e3d98fea21 100644 --- a/chapters/video_decode_h264_extensions.txt +++ b/chapters/video_decode_h264_extensions.txt @@ -10,7 +10,7 @@ session to execute decode jobs which include H.264 sequence header, picture parameter header and quantization matrix etc. Unless otherwise noted, all references to the H.264 specification are to the 2010 edition published by the ITU-T, dated March 2010. -This specification is available at http://www.itu.int/rec/T-REC-H.264. +This specification is available at https://www.itu.int/rec/T-REC-H.264. === H.264 decode profile diff --git a/chapters/video_decode_h265_extensions.txt b/chapters/video_decode_h265_extensions.txt index 28df08a475..703d665131 100644 --- a/chapters/video_decode_h265_extensions.txt +++ b/chapters/video_decode_h265_extensions.txt @@ -10,7 +10,7 @@ session to execute decode jobs which include H.265 sequence header, picture parameter header and quantization matrix etc. Unless otherwise noted, all references to the H.265 specification are to the 2013 edition published by the ITU-T, dated April 2013. -This specification is available at http://www.itu.int/rec/T-REC-H.265. +This specification is available at https://www.itu.int/rec/T-REC-H.265. === H.265 decode profile diff --git a/chapters/video_encode_h264_extensions.txt b/chapters/video_encode_h264_extensions.txt index 3481635488..ad1d538f33 100644 --- a/chapters/video_encode_h264_extensions.txt +++ b/chapters/video_encode_h264_extensions.txt @@ -9,7 +9,7 @@ This extension adds H.264 codec specific structures/types needed to support H.264 encoding. Unless otherwise noted, all references to the H.264 specification are to the 2010 edition published by the ITU-T, dated March 2010. -This specification is available at http://www.itu.int/rec/T-REC-H.264. +This specification is available at https://www.itu.int/rec/T-REC-H.264. === H.264 encode profile diff --git a/chapters/video_encode_h265_extensions.txt b/chapters/video_encode_h265_extensions.txt index a180aa4f86..aab280dd38 100644 --- a/chapters/video_encode_h265_extensions.txt +++ b/chapters/video_encode_h265_extensions.txt @@ -9,7 +9,7 @@ This extension adds H.265 codec-specific structures/types needed to support H.265 video encoding. Unless otherwise noted, all references to the H.265 specification are to the 2013 edition published by the ITU-T, dated April 2013. -This specification is available at http://www.itu.int/rec/T-REC-H.265. +This specification is available at https://www.itu.int/rec/T-REC-H.265. === H.265 encode profile diff --git a/config/attribs.txt b/config/attribs.txt index fd9c6ff385..125154bec2 100644 --- a/config/attribs.txt +++ b/config/attribs.txt @@ -105,3 +105,10 @@ endif::backend-html5[] // used to generate links to separate extension proposal documents in // generated extension metadata. :specRepositoryURL: https://github.com/KhronosGroup/Vulkan-Docs/tree/main + +// URL prefix for the GLSL extensions registry +:GLSLregistry: https://github.com/KhronosGroup/GLSL/blob/master/extensions +// URL prefix for the OpenGL extensions registry +:GLregistry: https://www.khronos.org/registry/OpenGL/extensions +// URL prefix for the SPIR-V extensions registry +:spirv: https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions diff --git a/config/chunkindex/chunked.js b/config/chunkindex/chunked.js index e7111e2260..8bc5c08228 100644 --- a/config/chunkindex/chunked.js +++ b/config/chunkindex/chunked.js @@ -1,4 +1,4 @@ -/*! loadJS: load a JS file asynchronously. [c]2014 @scottjehl, Filament Group, Inc. (Based on http://goo.gl/REQGQ by Paul Irish). Licensed MIT */ +/*! loadJS: load a JS file asynchronously. [c]2014 @scottjehl, Filament Group, Inc. (Based on https://goo.gl/REQGQ by Paul Irish). Licensed MIT */ (function( w ){ var loadJS = function( src, cb, ordered ){ "use strict"; diff --git a/proposals/VK_KHR_shader_integer_dot_product.asciidoc b/proposals/VK_KHR_shader_integer_dot_product.asciidoc index 8e0ed5a509..a8e914a59c 100644 --- a/proposals/VK_KHR_shader_integer_dot_product.asciidoc +++ b/proposals/VK_KHR_shader_integer_dot_product.asciidoc @@ -121,7 +121,7 @@ The type bitwidth refers to the size of the input vectors and whether it is a pa === SPIR-V Changes -This proposal uses an existing SPIR-V extension: http://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_integer_dot_product.html[SPV_KHR_integer_dot_product]. +This proposal uses an existing SPIR-V extension: https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_integer_dot_product.html[SPV_KHR_integer_dot_product]. == Examples diff --git a/scripts/reflow.py b/scripts/reflow.py index 0fb9532328..63b50d15ba 100755 --- a/scripts/reflow.py +++ b/scripts/reflow.py @@ -22,7 +22,7 @@ - `-nextvu #` starts VUID tag generation at the specified # instead of the value wired into the `reflow.py` script. - `-overwrite` updates in place (can be risky, make sure there are backups) -- `-check FAIL|WARN` runs some simple sanity checks on markup. If the checks +- `-check FAIL|WARN` runs some consistency checks on markup. If the checks fail and the WARN option is given, the script will simply print a warning message. If the checks fail and the FAIL option is given, the script will exit with an error code. FAIL is for use with continuous integration diff --git a/style/vuid.txt b/style/vuid.txt index b2b7be4262..0f73fdfd22 100644 --- a/style/vuid.txt +++ b/style/vuid.txt @@ -88,7 +88,7 @@ Specification source, invoke the following command: [source,sh] ---- -python3 reflow.py -overwrite -noflow -tagvu chapters/*.txt chapters/*/*.txt +python3 scripts/reflow.py -overwrite -noflow -tagvu chapters/*.txt chapters/*/*.txt ---- This will add VUID tags to all statements in valid usage blocks which do not diff --git a/style/writing.txt b/style/writing.txt index 7c90f2b1e6..84cadd67d3 100644 --- a/style/writing.txt +++ b/style/writing.txt @@ -708,7 +708,7 @@ from the `\{generated}/api/protos/` directory: // The 'subs=attributes+' and '{blank}--' are one way to allow the inner // [source] block to show the correct two dashes. See -// http://discuss.asciidoctor.org/Another-markup-escaping-question-td5665.html +// https://discuss.asciidoctor.org/Another-markup-escaping-question-td5665.html [source,asciidoc,subs=attributes+] ~~~~ diff --git a/tests/htest.c b/tests/htest.c index 72ce2f22d2..cfb0a5d366 100644 --- a/tests/htest.c +++ b/tests/htest.c @@ -33,7 +33,7 @@ #include -// Sanity check with a type or function from each platform header in turn +// Check with a type or function from each platform header in turn VkAndroidSurfaceCreateFlagsKHR android_flags; VkImagePipeSurfaceCreateFlagsFUCHSIA fuchsia_flags; diff --git a/vkspec.txt b/vkspec.txt index 3cc3c88211..343e776078 100644 --- a/vkspec.txt +++ b/vkspec.txt @@ -3,7 +3,7 @@ // SPDX-License-Identifier: CC-BY-4.0 // :regtitle: is explained in -// http://discuss.asciidoctor.org/How-to-add-markup-to-author-information-in-document-title-td6488.html +// https://discuss.asciidoctor.org/How-to-add-markup-to-author-information-in-document-title-td6488.html = Vulkan^®^ {revnumber} - A Specification {apititle} :regtitle: pass:q,r[^®^] The Khronos{regtitle} Vulkan Working Group diff --git a/xml/README.adoc b/xml/README.adoc index 3306439e67..01383847d8 100644 --- a/xml/README.adoc +++ b/xml/README.adoc @@ -129,7 +129,7 @@ g++ -Wall -c -std=c++11 -I../include testcore.c * 2018/03/13 - Update for new directory structure. * 2018/03/06 - - Update for Vulkan 1.1 release and `master` branch. + Update for Vulkan 1.1 release and new default branch. * 2015/09/18 - Split platform-specific headers into their own vulkan_.h files, move vulkan.h to vulkan_core.h, and add a new (static) vulkan.h diff --git a/xml/vk.xml b/xml/vk.xml index b12875c8c9..56b4890e64 100644 --- a/xml/vk.xml +++ b/xml/vk.xml @@ -155,7 +155,7 @@ branch of the member gitlab server. // Vulkan 1.2 version number #define VK_API_VERSION_1_2 VK_MAKE_API_VERSION(0, 1, 2, 0)// Patch version should always be set to 0 // Version of this file -#define VK_HEADER_VERSION 201 +#define VK_HEADER_VERSION 202 // Complete version of this file #define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 2, VK_HEADER_VERSION) @@ -10228,7 +10228,7 @@ typedef void CAMetalLayer; void vkCmdWriteBufferMarkerAMD VkCommandBuffer commandBuffer - VkPipelineStageFlagBits pipelineStage + VkPipelineStageFlagBits pipelineStage VkBuffer dstBuffer VkDeviceSize dstOffset uint32_t marker @@ -11101,7 +11101,7 @@ typedef void CAMetalLayer; void vkCmdResetEvent2KHR VkCommandBuffer commandBuffer VkEvent event - VkPipelineStageFlags2KHR stageMask + VkPipelineStageFlags2KHR stageMask void vkCmdWaitEvents2KHR @@ -11125,14 +11125,14 @@ typedef void CAMetalLayer; void vkCmdWriteTimestamp2KHR VkCommandBuffer commandBuffer - VkPipelineStageFlags2KHR stage + VkPipelineStageFlags2KHR stage VkQueryPool queryPool uint32_t query void vkCmdWriteBufferMarker2AMD VkCommandBuffer commandBuffer - VkPipelineStageFlags2KHR stage + VkPipelineStageFlags2KHR stage VkBuffer dstBuffer VkDeviceSize dstOffset uint32_t marker @@ -17479,6 +17479,7 @@ typedef void CAMetalLayer; + @@ -17634,6 +17635,12 @@ typedef void CAMetalLayer; + + + + + +